Вот моя интерпретация спецификаций. Обновление: после просмотра спецификаций HTML4 я передумал об атрибуте span
элемента colgroup
.
(Это также ответ на мой второй комментарий к вопросу)в ответе @ mu.)
A 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
span n
такое же, как в случае одного colgroup
с дочерним элементом col
, который охватывает n
столбцов.На мой взгляд, нет логической или семантической разницы.
Примечание: элемент col
должен содержаться в элементе colgroup
, который не имеет атрибута span
.Возможно, он не является прямым потомком элемента table
.