質問
これらのコードは論理的に同等ですか?
<colgroup span="7">
</colgroup>
と
<col span="7" />
と
<colgroup>
<col />
<col />
<col />
<col />
<col />
<col />
<col />
</colgroup>
HTMLまたはCSSを介したプロパティを介した属性は等しい効果がありますか? Sombodyは「colgroup」タグを追加できます。私がそれをするのに十分な担当者はいません。
解決
から の仕様 <col>
:
この要素を使用できるコンテキスト:
スパン属性を持たないコルグラング要素の子供として。
[...]
コンテンツ属性: グローバル属性
スパン
私はそれを言っていると読みました <col span="7" />
それ自体は無効ですが、これ:
<colgroup>
<col span="7" />
</colgroup>
有効で、次のものと同じです。
<colgroup span="7">
</colgroup>
ただし、 <colgroup>
があります span
属性, 、そうすべきではありません <col>
子供:
Colgroup要素にCOL要素が含まれていない場合、要素にはスパンコンテンツ属性が指定されている場合があります...
私の解釈(に基づいて HTML4仕様 より薄いHTML5よりも多く)あなたが通常使用することです <colgroup span="n">
HTML4仕様のこの(変更された)例のように、グループの列の1つを異なる方法でスタイリングする必要がない限り:
<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
属性。
(これはまた、 @Muの回答で私自身の2番目の質問コメントに応じています。)
a colgroup
aを表します 1つ以上の列のグループ, 、そしてその span
列グループの列数を指定します. 。だから私はそれをショートカットと考えており、著者が複数を書くのを防ぐのを救う col
連続して要素。
<colgroup class="x" span="3"></colgroup>
列グループは3つの列に及び、CSSルールに従ってスタイリングされています .x {...}
. 。これはに相当します
<colgroup class="x">
<col/>
<col/>
<col/>
</colgroup>
一方で、 col
表現します 列グループの1つ以上の列, 、そしてその span
「に及ぶ」列の数を指定します COL
エレメント…あなたが私に尋ねると、これは周期的な定義です。
私がこれを解釈できる唯一の方法は、書くことによって
<colgroup class="x"><col class="y" span="3"/></colgroup>
あなたは3つの列があり、それぞれが同じ論理グループにあり、に従って同じ方法でスタイリングされていると言っています .y {...}
. 。これは執筆の近道です
<colgroup class="x">
<col class="y"/>
<col class="y"/>
<col class="y"/>
</colgroup>
プレゼンテーションでは、顕著な違いがあるかどうかはわかりません。もちろん、すべてがどのように見えるかはCSSに依存します。しかし、意味的には、それらは非常に異なっています。最初の例は、各グループに1つの列を含む3つの列のグループを表しますが、2番目の例は3つの列の1つのグループを表します。
これを再考した後、私はそれらが両方とも同じであると決めました。を持っている colgroup
スパン n
列の数は、列を持っているのと同じです colgroup
とともに col
範囲の子供 n
列。私の意見には論理的または意味的な違いはありません。
ノート: col
エレメント しなければならない に含まれます colgroup
ノーの要素 span
属性。それはの直接の子供ではないかもしれません table
エレメント.