CSS 2.1仕様のラストコールが11月6日付でまたまた(何回目?)登場。本質的なところでは変化はないものの、4月の草案と比べると多少の手直しが見られる。いい加減に勧告候補に進んで欲しいものだ。
大きな見直しの一つは、min/max-width/height
と画像のような内在アスペクト比を持つ置換要素との関係(セクション10.4)。こうした要素のwidth
もしくはheight
だけを明示的に指定して、もう一方をmin/max
指定したとき、内在比と矛盾が出たらどうしよういう部分だ。たとえば縦横比1:1である画像に対して、
{width:200px; min-height:300px}
というスタイルを宣言すると、画像は正方形ではなく縦長になってしまう(というのが従来の仕様)。これに対して、min/max
の場合は内在比を尊重すべきではないかという意見が出て、WGでまとまらないのでコメントを求むという扱いになっている。
他に目立ったところでは、font-family
の一般フォントファミリー(serif
、sans-serif
など)に関する詳しい説明がセクション15.3.1として追加された、Appendix Eの重ね合わせ順序のアルゴリズムで、通常フロー要素の部分がより細かく書き直された、といったところか。そのほか用語の明確化など細かい修正はたくさんあるが、本質的な違いはない。
CSS2.1本との関係でいえば、ボックスの高さ、幅の計算式にスクロールバーの幅が追加されたことが少し影響あるかな。例えば通常フローのボックス幅を計算するための等式は、次のようになった。
'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' + scrollbar width (if any)
= width of containing block
通常はスクロールバー幅は関係ないが、overflow
がからんでくるときにはこれが関与するので、一般式にも取り入れられたというわけだ。で、overflow:scoll
などでスクロールバーが描かれるとき、以前はこの幅はwidth
、height
を減らす(Any space taken up by the scrollbars should be subtracted from the computed width/height
)となっていたのが、今回は次のように変更された。
The space taken up by the scrollbars affects the computation of the dimensions in the rendering model.
スクロールバーによって枠が変化するのはまずいけれども、その分をコンテント幅(高)で調整するか、パディングで調整するかは大きな問題ではないので、実装もにらんであえて曖昧にしたのかな。書籍のpp.124-125ではwidth
、height
を減じると断言しているけれど、このまま進めばちょっと書き直しが必要だ。
もうひとつ細かいところで、セクション15.7においてfont-size
の絶対サイズ(xx-large
など)を見出しレベルに対応づけていた馬鹿げた例は削除された。h6
がxx-small
相当などというのはナンセンスの極みだから、当然の処置だが、書籍p.260の注で揶揄しているのも削除する必要あり
- CSS2.1の勧告候補と検討事項リスト (2007-07-24)