Html <COL align> не рекомендуется? - PullRequest
23 голосов
/ 10 марта 2011

Я смотрю на демонстрацию W3Schools по использованию элемента <COL> для выравнивания столбцов :

<table width="100%" border="1">
  <col align="left" />
  <col align="left" />
  <col align="right" />
  <tr>
    <th>ISBN</th>
    <th>Title</th>
    <th>Price</th>
  </tr>
  <tr>
    <td>3476896</td>
    <td>My first HTML</td>
    <td>$53</td>
  </tr>
</table>

И его отображение в браузере не внушает оптимизма:

Chrome (10.0.648.127):
enter image description here

FireFox (3.6.8):
enter image description here

Internet Explorer 9 (стандартный режим):
enter image description here

Internet Explorer 8 (стандартный режим):
enter image description here

Internet Explorer 7 (стандартный режим):
enter image description here

Internet Explorer (режим причуд): enter image description here

Интересно отметить, что <COL align> использовал для работы в браузерах, а функция была забрана в ie8,(А Chrome, который является арбитром всех безупречных вещей, не поддерживает его.)

Это заставляет меня задаться вопросом, является ли <COL align> чем-то, что не должно работать.

Не устарел ли <COL align>?


Обновление 1

Я понимаю, что формально это не устарело.Но тот факт, что браузеры использовали для его поддержки, а затем прекратил его поддержку, заставляет меня поверить, что есть какая-то историческая история, которую я упускаю.я предполагаю, что преднамеренное удаление поддержки col align из IE и постоянное отсутствие поддержки со стороны других браузеров указывает на то, что что-то происходит.

Обновление два

я ошибочно предполагал отсутствие поддержкидля всех функций <COL> означает, что <COL> само по себе не поддерживается.я ошибочно предположил, что, поскольку единственный атрибут, который я пробовал, не работал: элемент не работал.Это была моя ошибка;и задним числом я должен спросить, не рекомендуется ли "COL align" (что это такое).

В мою защиту я предположил, что был бы показан пример того, что "больше не работает".

См. Также

Ответы [ 7 ]

27 голосов
/ 10 марта 2011

Да, атрибут align <col /> больше не отображается в HTML5. Говорит спецификация!

Также стоит отметить, что вы не можете достичь аналогичного результата, используя CSS для тега <col />.Атрибут style (или индуцированный стиль из id, class и т. Д.) Учитывает только те свойства, которые разумно применяются к самому столбцу.То есть, хотя каждый <td /> может содержать текстовое содержимое и, следовательно, может иметь такие атрибуты, как установленный text-align, элемент <col /> не содержит текста и, следовательно, ни один из стилей текстового уровня не применяется.(Такие вещи уровня блока, как background-color все еще работают.)

Однако в базовых случаях, не связанных с colspan или rowspan, вы можете выбрать блоки <td /> s (и, следовательно, «столбцы» вв некотором смысле) с помощью псевдокласса CSS :nth-of-type.Например, для центрирования третьего столбца таблицы с классом c3 используйте

table.c3 td:nth-of-type(3) { text-align: center; }

Редактировать с помощью OP:

С Стандарт HTML:

15 Устаревшие функции
15.2 Несоответствующие функции

Следующие атрибуты устарели (хотя элементы все еще являются частью языка) и не должныиспользоваться авторами: ...
выравнивать по col элементам
...

Использовать CSS вместо.

Вики WHATWG даетнекоторые рекомендуемые альтернативы для различных устаревших атрибутов представления :

Attribute              CSS equivalent
=====================  =====================================
align on col elements  'text-align' on the appropriate td/th
4 голосов
/ 06 июля 2012

Попробуйте

<!doctype html>
<html>
  <head>
    <title>Table</title>
    <style>
      table.foo td:nth-of-type(2) {
        font-style: italic;
      }
    </style>
  </head>
  <body>
    <table class="foo">
      <thead>
        <tr> <th>first</th> <th>second</th> </tr>
      </thead>
      <tbody>
        <tr> <td>bar</td> <td>baz</td> </tr>
        <tr> <td>bim</td> <td>buh</td> </tr>
      </tbody>
    </table>
  </body>
<html>

Который отображается как :

enter image description here

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

Тег <col> не устарел.

См .: Как правильно использовать тег и поддерживается ли он во всех браузерах? Я думаю, что этот ответ разъясняет его использование и объясняет некоторые проблемы, с которыми вы столкнулись.

Это часть XHTML и HTML 5. http://www.tutorialspoint.com/html5/html5_tags.htm

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

[править] Тьфу, ты изменил свой вопрос, чтобы обратиться именно к свойству align.

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

Примечания от W3:

  • Только поддержка Firefox, Chrome и Safariатрибуты span и width элемента colgroup.
  • В Firefox работает только атрибут width [элемента col] (ни один из других атрибутов).
0 голосов
/ 12 ноября 2013

Согласно второму примеру таблицы в спецификации HTML, это colgroup, несмотря на отсутствие тегов colgroup.

http://www.w3.org/TR/html4/struct/tables.html#h-11.4.1

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

Чтобы сделать разметку семантически значимой, рассматривали ли вы замену тегов <col> на <colgroup>?

<col> используется исключительно для стилизации, тогда как <colgroup> может использоваться для группировки связанных столбцов (возможно, именно поэтому вы намерены выровнять два из них слева?) Затем вы можете применить CSS к различным группам, чтобы соответствующим образом оформить их ,

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

Нет, это не так, это одновременно часть спецификации html4 и спецификации html5.

http://www.w3.org/TR/html401/struct/tables.html#h-11.2.4.2

http://dev.w3.org/html5/markup/col.html

http://www.html -5.com / теги / COL-тег /

...