Вопрос

Эти коды логически эквивалентны?

<colgroup span="7">
</colgroup>

А также

<col span="7" />

А также

<colgroup>
<col />
<col />
<col />
<col />
<col />
<col />
<col />
</colgroup>

Будут ли какие -либо атрибуты с помощью HTML или свойств через CSS иметь одинаковый эффект? Может ли что -нибудь также добавить тег "colgroup". Для меня не хватает репутации.

Это было полезно?

Решение

От спецификация для <col>:

Контексты, в которых можно использовать этот элемент:
Будучи ребенком элемента Colgroup, у которого нет атрибута SPAN.
[...]
Атрибуты контента: Глобальные атрибуты
охватывать

Я читаю это как говоря, просто <col span="7" /> само по себе недействительна, но это:

<colgroup>
    <col span="7" />
</colgroup>

действителен и так же, как:

<colgroup span="7">
</colgroup>

Однако, если <colgroup> имеет span атрибут, тогда это не должно быть <col> дети:

Если элемент Colgroup не содержит элементов COL, то элемент может иметь указанный атрибут содержимого SPAN ...

Моя интерпретация (на основе HTML4 спецификация Больше, чем более тонкий HTML5 One) - это то, что вы обычно используете <colgroup span="n"> Если вам не нужно было создать один из столбцов в группе по -разному, как в этом (модифицированном) примере из спецификации HTML4:

<colgroup style="width: 20px; font-weight: bold;">
    <col span="39">
    <col id="format-me-specially" style="width: 35px;">
</colgroup>

так что первые 39 столбцов будут использовать все <colgroup> Указывает, но 40 -й можно изменить. OTOH, у меня проблемы с тем, что браузеры обращают много внимания на любое из этого (несмотря на то, что говорят спецификации) на jsfiddle.net So YMMV.

Другие советы

Вот моя интерпретация спецификаций. Обновление: после рассмотрения спецификаций HTML4 я передумал по поводу colgroup элемент span атрибут.

(Это также в ответ на мой собственный комментарий 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 элемент.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top