Это хорошо, чтобы положить внутрь пустую <td>? - PullRequest
23 голосов
/ 24 марта 2010

Если это структура:

<table cellspacing="0" cellpadding="0">
   <tr>
      <td>I don't need anything here, should I always put a &nbsp; here?</td>
      <td>item </td>
   </tr>
   <tr>
      <td>model</td>
      <td>one</td>
   </tr>
   <tr>
      <td>model</td>
      <td>two</td>
   </tr>
   <tr>
      <td>model</td>
      <td>three</td>
   </tr>
</table>

Как программа чтения с экрана будет читать пробел td? Это семантически правильно?

Ответы [ 4 ]

12 голосов
/ 24 марта 2010

Семантически правильным ИМХО будет держать пустую ячейку действительно пустой. Однако я также заполняю пустые ячейки &nbsp; с по прагматическим соображениям.

Что касается программ чтения с экрана, мне придется сделать обоснованное предположение: пустые узлы, скорее всего, не будут читаться, поскольку HTML состоит в основном из пробельных текстовых узлов, которые читатели игнорируют, и я предполагаю, что &nbsp; свернут простое пространство в приложениях для чтения (поскольку неразрывный является свойством визуальных носителей).

Для визуализации можно использовать свойство таблицы CSS empty-cells:

table {
    empty-cells: show;
}
5 голосов
/ 25 июля 2012

Семантически таблица HTML на самом деле является просто массивом (матрицей) данных, и нет никаких причин, по которым символ пробела не может рассматриваться как данные. Имеет ли это смысл, зависит от цели, структуры и содержания таблицы. В большинстве случаев есть лучшее решение. См. Некоторые предложения в Пустые ячейки в таблицах HTML .

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

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

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

2 голосов
/ 24 марта 2010

Благодаря таким редакторам, как Dreamweaver, эта практика стала своего рода стандартом, поэтому, даже если это не идеальное решение - по крайней мере, вы не будете одиноки в этом. Кроме того, он более совместим с более старыми браузерами, чем CSS empty-cells.

0 голосов
/ 24 марта 2010

Нет ничего, что точно говорит, что вы не должны использовать пустой TD, и оно проходит, когда вы пытаетесь проверить.

Хотя, более элегантный подход - использовать colspan.

т.е.

<tr>
   <td colspan="2">item </td>
</tr>

Но это выровняет ваш контент по левому краю, и вам придется вручную (через css) применять стили, чтобы контент выровнялся там, где вы хотите.

Преимущество использования его с colspans заключается в том, что программы чтения с экрана будут читать только то, что есть, а не пустые места

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...