これらのコードは論理的に同等ですか?
<colgroup span="7">
</colgroup>
と
<col span="7" />
と
<colgroup>
<col />
<col />
<col />
<col />
<col />
<col />
<col />
</colgroup>
HTML 経由の属性または CSS 経由のプロパティは同じ効果がありますか? 「colgroup」タグも追加できますか。私がそれをするのに十分な担当者がいません。
この要素を使用できるコンテキスト:
span 属性を持たない colgroup 要素の子として。
[...]
コンテンツ属性: グローバル属性
スパン
<col span="7" />
それだけでは無効であると言っていると読みましたが、これは次のとおりです。
<colgroup>
<col span="7" />
</colgroup>
は有効で、次と同じです:
<colgroup span="7">
</colgroup>
ただし、に属性<colgroup>
があるspan
<col>
場合は、子を持つべきではありません。
colgroup 要素に col 要素が含まれていない場合、その要素には span コンテンツ属性が指定されている可能性があります...
私の解釈 (より薄い HTML5仕様よりも HTML4 仕様に基づく) は<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でYMMVのように(仕様に記載されているにもかかわらず)ブラウザにこれに多くの注意を払わせるのに苦労しています。
以上がスペックの解釈です。更新: HTML4 の仕様を見て、colgroup
要素のspan
属性について考えが変わりました。
(これは、@mu の回答にある私自身の 2 番目の質問コメントへの回答でもあります。)
Aは 1 つ以上の列colgroup
のグループを表し、列グループ内の列の数を指定します。だから私はそれを近道と考えており、作者が複数の要素を連続して書くことを防いでいる.span
col
<colgroup class="x" span="3"></colgroup>
列グループは 3 つの列にまたがり、CSS ルールに従ってスタイル設定され.x {...}
ます。これは、
<colgroup class="x">
<col/>
<col/>
<col/>
</colgroup>
一方、は列グループ内の 1 つまたは複数の列をcol
表し、その要素によって「またがる」列の数を指定します。私に言わせれば、これは循環定義です。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
注:要素は、属性を持たない要素に含まれている必要があります。elementの直接の子ではない可能性がありますcol
colgroup
span
table
。