Вот моя интерпретация спецификаций. Обновление: просмотрев спецификации HTML4, я изменил свое мнение об атрибуте span
элемента colgroup
.
(Это также ответ на мой собственный комментарий 2-го вопроса в ответе @mu.)
colgroup
представляет собой группу из одного или нескольких столбцов. , а его span
задает количество столбцов в группа столбцов. Поэтому я думаю об этом как о сокращении, избавляющем автора от последовательного написания нескольких элементов col
.
<colgroup class="x" span="3"></colgroup>
Группа столбцов охватывает три столбца и оформлена в соответствии с правилом CSS .x {...}
. Это эквивалентно
<colgroup class="x">
<col/>
<col/>
<col/>
</colgroup>
С другой стороны, col
представляет один или несколько столбцов в столбце группа, а ее span
указывает количество столбцов, «натянутых» элементом COL
… что является циклическим определением, если вы спросите меня.
Единственный способ, которым я могу интерпретировать это, заключается в том, что написав
<colgroup class="x"><col class="y" span="3"/></colgroup>
вы говорите, что есть три столбца, каждый из которых находится в одной логической группе, оформленной одинаково в соответствии с .y {...}
. Это быстрый способ написать
<colgroup class="x">
<col class="y"/>
<col class="y"/>
<col class="y"/>
</colgroup>
На первый взгляд, я не уверен, что будет заметна разница. Как все это выглядит, конечно же, зависит от вашего CSS. Но семантически они очень разные. В первом примере представлены три группы столбцов, каждая из которых содержит один столбец, тогда как во втором примере представлена одна группа из трех столбцов.
Переосмыслив это, я решил, что они оба одинаковы. Наличие colgroup
диапазона n
столбцов равнозначно одному colgroup
с дочерним элементом col
, который охватывает n
столбцов. На мой взгляд, нет никакой логической или семантической разницы.
Примечание: элемент col
должен быть содержится в элементе colgroup
, не имеющем атрибута span
. Он не может быть прямым потомком элемента table
.
person
chharvey
schedule
18.01.2012