Jintrick.netagenda2008年09月アーカイブ → 2008年09月24日

DOMのgetComputedStyleとIEのcurrentStyleの違い

CSSには計算値と実効値があって、両者は同一ではない。DOMのgetComputedStyleメソッド経由で参照できるのは計算値、IE独自のcurrentStyleオブジェクト経由で参照できるのは実効値だ。いや正確に実効値かどうかはちょっと怪しいのだが、msdnの言うところのcascated style(謎杉)はどうやらCSSでいうところの実効値に近い概念であるようだ。

実際の表示に適用されるのは計算値ではない。CSSの仕様書の例は分かりづらいが、font-familyプロパティを考えてみると、計算されたフォント名が「Calibri」でも、Calibriがインストールされていない場合、実際に適用されるフォント、すなわち実効値はユーザーエージェントが選択することになる。

単純化のため、「計算値がCSSの仕様の文脈を出ないのに対し、実効値はユーザーの環境の影響を受ける」と言い換えることは許されるだろう。

いろいろなブラウザで試してみたが、Opera(9.50)はgetComputedStyleが実効値を参照してしまう。様な気がする。font-familyでしか確認していない。だが正直言って「計算値」などという中間の生産物を参照できたって中途半端で使いにくいんだよ。エディタは実効値との違いを理解していなかったのではないか。


webmaster@jintrick.net
公開: 2008年09月24日
カテゴリ: CSS ,DOM