Лучшая практика для того, чтобы сделать веб-формы

Это в порядке для использования таблиц для создания веб-форм, или я должен использовать отделение? Я знаю, как использовать таблицы, но как я должен сделать форму с отделением, или лучше использовать таблицы?

Возможный дубликат: Why-not-use-tables-for-layout-in-html

16
задан Community 23 May 2017 в 11:52
поделиться

6 ответов

Не используйте таблицы, это очень хрупкий , нематерианский макет , используйте надлежащие компоновки CSS. Ниже приведены некоторые презентации, которые объясняют некоторые хорошие подходы к составлению макета, включая соображения юзабилити. Первая ссылка больше о коде, а второе больше о проектировании и удобствах удобства юзабилити:

37
ответ дан 30 November 2019 в 15:32
поделиться

Абсолютно наилучший формат форм, на мой взгляд, состоит в том, чтобы использовать неупорядоченные списки внутри полей, которые образуются метками. Это самый семантически правильный способ, в любом случае:

<form method="post" action="foo.php">
    <fieldset>
        <legend>Some fields</legend>
        <ul>
            <li>
                <label for="foo">Foobar</label>
                <input type="text" name="foo" id="foo" />
            </li>
        </ul>
    </fieldset>
</form>

Сервера не являются обязательными, но могут простирать в противном случае. Основные CSS, чтобы получить UL ul выглядят как форма, может быть что-то вроде этого:

form ul {
    list-style: none;
    margin: 0;
}

form ul li {
    margin-bottom: 10px;
}

form ul li label {
    display: block;
    float: left;
    width: 150px;
    line-height: 24px;
}
5
ответ дан 30 November 2019 в 15:32
поделиться

Принципал тот же самый, независимо от того, называете ли вы его:

  • номер автобуса
  • номер грузовика
  • коэффициент автобуса
  • коэффициент грузовика
  • и др.

Кроме того, принципал тот же, независимо от того, описываете ли вы его, используя большее число, как лучше или меньшее число, как лучше:

  • Высокий номер автобуса является хорошим, если вы описываете количество членов проекта, которые могут быть сбиты автобусом и проект выживет;
  • Низкий номер автобуса является хорошим, если вы описываете количество членов проекта, которые пережили аварию автобуса и проект выжил.

Я изучал это когда-то, но не помню, что пришло первым (см. ответ @ Paolo). Независимо от того, кто пришел первым, я испытал достаточно путаницы, чтобы убедиться, что все стороны используют одну и ту же версию числа, высокую или низкую.;)

-121--2789857-

Я наткнулся на ту же путаницу. Согласен, что документация не очень понятна. Сейчас я использую LINQ в трех проектах, и мне это скорее нравится.

При использовании LINQ в SQL создайте класс LINQ, создав соединение с сервером в представлении сервера и перетащив таблицу в контекст данных. В противном случае просто задайте db как коллекцию объектов сканирования.

1) Получить число сканирований, сгруппированное по дате доставки = True

Dim db = new BrettsDataContext
Dim Query = From s as Scan in db _
Where s.Delivered = True _
Order By s.Date

2) Получить число сканирований, сгруппированное по объекту, где Delivered = True

Dim db = new BrettsDataContext
Dim Query2 = From s as Scan in db _
Where s.Delivered = True _
Order By s.Date

3) Получить число сканирований, сгруппированное по состоянию, где Delivered = True

Dim db = new BrettsDataContext
Dim Query3 = From s as Scan in db _
Where s.Delivered = True _
Order By s.State

Последняя получит все строки результата. Если вы просто хотите, чтобы число:

Dim count = (From s as Scan in db _
Where s.Delivered = True).Count

Если вы хотите все отдельные даты доставки, вы можете сделать следующий запрос:

Dim db = new BrettsDataContext
Dim Query4 = From s as Scan in db _
Where s.Delivered = True _
Order By DeliveryDate

Чтобы установить в качестве источника данных, просто сделайте следующее:

Dim db = new BrettsDataContext
Dim Query = From s as Scan in db _
Where s.Delivered = True _
Order By s.Date

gridview1.DataSource = Query

Надеюсь, это поможет!

-121--4903985-

Правило для использования: Используйте таблицы только для отображения табличных данных.

Это всегда хорошо работало для меня...

5
ответ дан 30 November 2019 в 15:32
поделиться

Такого жесткого и быстрого правила или лучшего способа выполнения форм в HTML. Если вы хотите использовать Div простым способом, лучше выбрать структуру CSS, чтобы сделать все удобное, например Blueprint

2
ответ дан 30 November 2019 в 15:32
поделиться

Для лучшей практики HTML / CSS в целом я рекомендую взглянуть на список в список . Что касается форм, вот статья, которая соответствует вашим потребностям: красивее доступные формы . Для других примеров, просто Google с ключевыми словами «Семантическая форма HTML» .

3
ответ дан 30 November 2019 в 15:32
поделиться

Ответ: это зависит.

Предположим, что мы получили

If-None-Match: *
If-Modified-Since: <yesterday date>

и страница была изменена сегодня .

Сначала рассмотрим * , в котором говорится: «Возвращайте 304, если ресурс есть и условие (2) выполнено». Хорошо, ресурс существует, НО условие (2) гласит: «Только возврат 304, если дата позже текущей». Так что это условие не выполняется, и страница будет доставлена полностью.

Если бы мы не получили If-Modified-Since , ответ был бы 304.

Если бы ресурс не существовал по запросу, мы бы вернули соответствующий код (как если бы не было If-None-Match ).

304 следует возвращать только в ответ на запросы GET и HEAD, и все заголовки ответов, связанные с кэшем, должны быть там. Для всех других типов запросов сервер должен отвечать 412 (предварительное условие не выполнено).

Надеюсь, это поможет;)

-121--1105536-

Чтение тела объекта ответа на ошибку. Это может иметь намек на то, что происходит.

Код для этого следующий:

catch(WebException e)
{
if (e.Status == WebExceptionStatus.ProtocolError)
{
    WebResponse resp = e.Response;
    using(StreamReader sr = new StreamReader(resp.GetResponseStream()))
    {
         Response.Write(sr.ReadToEnd());
    }
}
}

Это должно показать полное содержимое ответа на ошибку.

-121--1516592-

Таблицы не для макета, таблицы для периода данных, css - это путь, который нужно пройти, это лучшая практика.

1
ответ дан 30 November 2019 в 15:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: