[2] 本項では CSS における基底URLと URLの解決について扱います。
[6] CSSスタイルシートの基底URLはスタイルシート自体の基底URLであって、 参照元の文書の基底URLではありません >>5。
[3] HTML style
要素のスタイル言語の処理器がみつけた URL
は、要素の基底URLに対して (あるいはスタイル言語の規定するところにより) 解決しなければなりません >>1。
[8] style
要素や style
属性は基底URL変更の影響を受けません >>7。
[9] 例えば pushState
によって文書基底URLが変化しても、それ以前からあった
style
要素のスタイルシートの基底URLは変化しません。
その後、たとえば style
要素の textContent
属性に値を設定すると、新しい基底URLで改めてスタイルシートが評価されるため、
新しい基底URLに変化します。
[10] >>5 によれば <url>
の指定値は元の値、算出値は解決した値ということになっていますが、
Chrome の CSSOM に現れるのは解決した値です
(Firefox と WinIE9 では元の値)。構文解析の時点で絶対URLに解決されているものと思われます。
[11] Chrome も Firefox も、 style
要素から作られたスタイルシートは作成時点での要素の基底URLをコピーしていて、
その後変化しても追随しないようです。一方 style
属性は基底URLを持っておらず、
値を設定するとその時点での要素の基底URLを使って解決し、解決済みの値は基底URLが変わっても保持し続けるようです。
[12] @import
では URL は構文に関わらず Chrome でも Firefox
でも元々の値が CSSOM に現れます。
style
属性その他の埋め込み・参照方法の基底URLについての規定はありません。