<input> табличные данные? - PullRequest
       21

<input> табличные данные?

1 голос
/ 30 марта 2011

С точки зрения использования XHTML 1.0 Strict в качестве DOCTYPE - будет ли входной тег в XHTML считаться табличными данными?

А если не , может кто-нибудьпожалуйста, дайте мне несколько хороших советов по поводу правильного кода XHTML (Strict 1.0), который я мог бы использовать в сочетании с MySQL и PHP?Что мне нужно сделать, так это иметь поле ввода справа от другого поля ввода (НО, правое поле ввода не всегда нуждается в печати на странице), так что в настоящее время я могу только придумать это:

<table>
    <tr>
        <td><input type="text" value="First column"></td>
        <td>...</td>
        <td>...</td>
    </tr>
    <?php if(!empty($column2)){ echo '<tr><td><input type="text" value="Second column"></td></tr>'; } ?>
</table>

Итак, есть еще идеи?Я благодарен за любые предложения, которые вы можете иметь!

РЕДАКТИРОВАТЬ Я должен также упомянуть, что мне нужно иметь заголовки над каждым столбцом (не каждое поле ввода, но, скажем, каждый tr,смотря из моего примера).

Ответы [ 4 ]

2 голосов
/ 30 марта 2011

Является ли <input> табличными данными?

Я отвечу на этот вопрос встречным вопросом:

Является ли прямоугольник квадратом?

В общем случае ответ отрицательный, хотя в некоторых случаях ответ может быть да.

Если ваш ввод табличного характера, разметка в таблице имеет смысл.Например, таблица пользователей с конкретными предпочтениями / примечаниями будет семантически размечена в таблице.

Таблица, содержащая поле имени пользователя / пароля для входа в систему, имеет вид , а не семантическая.

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

1 голос
/ 30 марта 2011

Поле ввода справа от другого поля ввода?

Хм, дай мне посмотреть ... это?

<div>
    <input> <input>
</div>

Живая демоверсия: http://jsfiddle.net/dWPfx/1/


Обновление: с подписями:

<table>
    <tr>
        <th>Name:</th>
        <th>Surname:</th>
    </tr>
    <tr>
        <td><input></td>
        <td><input></td>
    </tr>
</table>

Демонстрационная версия: http://jsfiddle.net/dWPfx/2/

0 голосов
/ 30 марта 2011

Ваши опасения по поводу того, что input являются табличными данными или нет, не должны влиять на ваше стремление к действительной разметке XHTML 1.0 Strict.

Независимо от того, является ли input табличным или нет, это вопрос семантики,не проверка.Не поймите меня неправильно, семантика важна - используемая разметка должна описывать содержимое, которое она содержит.Однако семантика в основном не связана с тем, будет ли код проверяться.

Для input требования для проверки состоят в том, чтобы он (1) был внутри тега <form> и (2) был внутри элемента уровня блока, такого как <p> или <table>или любой другой элемент уровня блока.

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

Лично я не верю, что формы являются табличными данными и не используют таблицы при создании разметки для них.Обычно я использую неупорядоченные списки.Общий пример может быть:

<form>
  <fieldset>
    <ul>
      <li>
        <label for="item">Item 1</label>
        <input type="text" name="item" id="item" />
      </li>
      ...
    </ul>
  </fieldset>
</form>

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

0 голосов
/ 30 марта 2011

Вы должны быть в состоянии сделать то же самое с divs:

<div style="overflow: hidden;">
   <div style="float: left;"><input value="First Column" /></div>
   <div condition="exists:column2" style="float: left;">
      <input attributes="value column2" />
   </div>
</div>

Я думаю, что входные и табличные данные не имеют ничего общего друг с другом, хотя они не обязательно находятся в оппозиции.Семантика данных xhtml несколько открыта для интерпретации.Суть в том, что вам не следует использовать таблицы для стилизации, даже если вы можете извиниться в своей голове, например: «Ну, входные данные похожи на табличные данные, поэтому здесь здорово использовать таблицу».

...