Действительно ли приемлемо использовать таблицы для форм? Или действительно ли это еще более корректно для использования отделений?

create table scores (
   user_id int,
   score int
)

select t.range as [score range], count(*) as [number of occurences]
from (
      select user_id,
         case when score >= 0 and score < 10 then '0-9'
         case when score >= 10 and score < 20 then '10-19'
         ...
         else '90-99' as range
     from scores) t
group by t.range
33
задан Christopher Rapcewicz 10 December 2013 в 18:16
поделиться

10 ответов

Оба правильные .

Я предпочитаю использовать некоторые div / li , так как это позволяет мне сделать некоторые разные макеты, но таблицы для форм не осуждаются.

Фактически, по умолчанию, Django предоставляет вам таблично-форматированные формы.

19
ответ дан 27 November 2019 в 17:58
поделиться

Важно использовать метки с атрибутом 'for' для программ чтения с экрана (для удобства использования).

Вот почему я использую наборы полей

0
ответ дан 27 November 2019 в 17:58
поделиться

вы можете использовать все, что хотите, просто это новый стандарт для создания макета форм html, и это вроде как правило не использовать теги таблиц для дизайна, но все равно можно использовать таблицы для отображения таблицы данных (сетки)

0
ответ дан 27 November 2019 в 17:58
поделиться

Кто-то скажет да, кто-то нет.

Вот способ решить: если он действительно содержит табличные данные, то он должен, по крайней мере, согласно WCAG, иметь сводку атрибут. Атрибут summary должен описывать назначение и структуру таблицы для удобства пользователей программ чтения с экрана. Вы можете написать такой атрибут? Если да, то вам следует сделать это и включить его в свою таблицу. Если вы не можете, то, вероятно, это не совсем таблица, и вам следует поискать другой способ размещения вашей формы.

1
ответ дан 27 November 2019 в 17:58
поделиться

Если вы ищете "чистоту css", вы должны использовать что-то вроде этого:

<form action="http://localhost/Zoleris/" method="post" accept-charset="utf-8">
    <ul class="form">
      <li>
        <label for="username">Username</label>
        <input type="text" id="username" name="username">
      </li>

      <li>
        <label for="password">Password</label>
        <input type="password" id="password" name="password">
      </li>

      <li>
        <input type="checkbox" id="remember_me" name="remember_me" >
        <label class="checkbox" for="remember_me">Remember my username</label>
      </li>

      <li>
        <a href="forgot.php">Forgot your password?</a>
      </li>

      <li>
        <button type="submit" id="btnLogin" name="btnLogin" class="button positive" style="float:right"><img src="tick.png">Login</button>
        <button type="submit" id="btnRegister" name="btnRegister" style="float: left"><img src="cross.png">I need an account!</button>
      </li>
    </ul>
</form>
0
ответ дан 27 November 2019 в 17:58
поделиться

Да

Да, вы можете использовать таблицы. Предполагается, что Div заменяет таблицы для макета на уровне страницы, но не для таблиц. Продолжайте и используйте их на страницах, когда они решают вашу проблему.

4
ответ дан 27 November 2019 в 17:58
поделиться

Форма не является табличными данными.

С помощью CSS так легко размещать элементы формы, я не вижу никакого значения, которое стоило бы обфускации разметки с помощью таблиц. Лично я считаю, что компоновка форм с помощью CSS проще , чем использование таблиц на данном этапе. Например:

HTML:

<fieldset>
  <label for="FirstName">First Name</label>
  <input type="text" id="FirstName" />

  <label for="LastName">Last Name</label>
  <input type="text" id="LastName" />

  <label for="Age">Age:</label>
  <select id="Age">
    <option>18-24</option>
    <option>25-50</option>
    <option>51-old</option>
  </select>
</fieldset>

CSS:

fieldset {
  overflow: hidden;
  width: 400px;
}

label {
  clear: both;
  float: right;
  padding-right: 10px;
  width: 100px;
}

input, select {
  float: left;
}

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

12
ответ дан 27 November 2019 в 17:58
поделиться

Вы можете использовать таблицы. Вот так просто.

6
ответ дан 27 November 2019 в 17:58
поделиться

Попробуйте наборы полей

Я предпочитаю разбивать поля на логические

с одним каждое, потому что:

  • Код менее загроможден
  • Форматирование по умолчанию является удобным для пользователя (мне особенно нравится, как отображается легенда)
  • Это легко стилизовать с помощью CSS

Вот пример кода. Обратите внимание, что атрибут меток для позволяет щелкнуть эту метку, чтобы переместить фокус на указанный вход (он соответствует атрибуту id ).

<form>
  <fieldset>
    <legend>Wombat Statistics</legend>
    <ol>
      <li>
        <label for="punchstrength">Punch Strength</label>
        <input id="punchstrength" name="punchstrength" />
      </li>
      <li>
        <label for="beverage">Favorite Beverage</label>
        <input id="beverage" name="beverage" />
      </li>
    </ol>
  </fieldset>
  <fieldset>
    <legend>Questions That Are Too Personal</legend>
    <ol>
      <li>
        <label for="creditcard">What is your credit card number?</label>
        <input id="creditcard" name="creditcard" />
      </li>
      <li>
        <label for="gullibility">Did you actually fill that in?</label>
        <input id="gullibility" name="gullibility" />
      </li>
    </ol>
  </fieldset>
</form>

Для базового макета вы можете использовать что-то вроде:

label, input, textarea, select { 
  display: inline-block; vertical-align: top; width: 30%; 
}

См. эту статью для более подробного руководства.

27
ответ дан 27 November 2019 в 17:58
поделиться

Эрик, я согласен с вами, что данные формы являются табличными данными и семантически могут находиться внутри таблицы.

Это метод, который я использую для простых экранов ввода данных.

I обычно не будет использовать div, но возможно упорядоченный список

<ol>...</ol>

, поскольку форма также является упорядоченным списком элементов. Однако мне очень сложно стилизовать этот метод.

Вы, вероятно, получите 50/50 ответов ....

1
ответ дан 27 November 2019 в 17:58
поделиться