CSSの基底URL

CSSの基底URL

[2] 本項では CSS における基底URLURLの解決について扱います。

仕様書

基底 URL

[6] CSSスタイルシート基底URLスタイルシート自体の基底URLであって、 参照元の文書基底URLではありません >>5

[3] HTML style 要素スタイル言語処理器がみつけた URL は、要素の基底URLに対して (あるいはスタイル言語の規定するところにより) 解決なければなりません >>1

[4] style 属性その他の埋め込み・参照方法の基底URLについての規定はありません。

[8] style 要素style 属性基底URL変更の影響を受けません >>7

[9] 例えば pushState によって文書基底URLが変化しても、それ以前からあった style 要素スタイルシート基底URLは変化しません。 その後、たとえば style 要素textContent 属性に値を設定すると、新しい基底URLで改めてスタイルシートが評価されるため、 新しい基底URLに変化します。

[10] >>5 によれば <url>指定値は元の値、算出値解決した値ということになっていますが、 ChromeCSSOM に現れるのは解決した値です (FirefoxWinIE9 では元の値)。構文解析の時点で絶対URL解決されているものと思われます。

[11] ChromeFirefox も、 style 要素から作られたスタイルシートは作成時点での要素基底URLをコピーしていて、 その後変化しても追随しないようです。一方 style 属性基底URLを持っておらず、 値を設定するとその時点での要素基底URLを使って解決し、解決済みの値は基底URLが変わっても保持し続けるようです。

[12] @import では URL は構文に関わらず Chrome でも Firefox でも元々の値が CSSOM に現れます。