[2] 本項では [[CSS]] における[[基底URL]]と [[URLの解決]]について扱います。 * 仕様書 [REFS[ - [5] '''[CITE@en[CSS Values and Units Module Level 3]] ([TIME[2013-08-23 23:29:23 +09:00]] 版) ''' - [1] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2013-08-22 05:23:59 +09:00]] 版) - [7] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2013-08-22 05:23:59 +09:00]] 版) ]REFS] * 基底 URL [6] [[CSSスタイルシート]]の[[基底URL]]は[[スタイルシート]]自体の[[基底URL]]であって、 参照元の[[文書]]の[[基底URL]]ではありません [SRC[>>5]]。 [3] [[HTML]] [CODE(HTMLe)@en[[[style]]]] [[要素]]の[[スタイル言語]]の[[処理器]]がみつけた [[URL]] は、[[要素の基底URL]]に対して (あるいは[[スタイル言語]]の規定するところにより) [[解決]]し[['''なければなりません''']] [SRC[>>1]]。 ;; [4] [CODE(HTMLa)@en[[[style]]]] [[属性]]その他の埋め込み・参照方法の[[基底URL]]についての規定はありません。 [8] [CODE(HTMLe)@en[[[style]]]] [[要素]]や [CODE(HTMLa)@en[[[style]]]] [[属性]]は[[基底URL変更の影響]]を受けません [SRC[>>7]]。 [EG[ [9] 例えば [CODE(DOMm)@en[[[pushState]]]] によって[[文書基底URL]]が変化しても、それ以前からあった [CODE(HTMLe)@en[[[style]]]] [[要素]]の[[スタイルシート]]の[[基底URL]]は変化しません。 その後、たとえば [CODE(HTMLe)@en[[[style]]]] [[要素]]の [CODE(DOMa)@en[[[textContent]]]] [[属性]]に値を設定すると、新しい[[基底URL]]で改めて[[スタイルシート]]が評価されるため、 新しい[[基底URL]]に変化します。 ]EG] [10] >>5 によれば [CODE@en[[[]]]] の[[指定値]]は元の値、[[算出値]]は[[解決]]した値ということになっていますが、 [[Chrome]] の [[CSSOM]] に現れるのは[[解決]]した値です ([[Firefox]] と [[WinIE9]] では元の値)。[[構文解析]]の時点で[[絶対URL]]に[[解決]]されているものと思われます。 [TIME[2013-08-26T02:55:12.700Z]] [11] [[Chrome]] も [[Firefox]] も、 [CODE(HTMLe)@en[[[style]]]] [[要素]]から作られた[[スタイルシート]]は作成時点での[[要素]]の[[基底URL]]をコピーしていて、 その後変化しても追随しないようです。一方 [CODE(HTMLa)@en[[[style]]]] [[属性]]は[[基底URL]]を持っておらず、 値を設定するとその時点での[[要素]]の[[基底URL]]を使って[[解決]]し、[[解決]]済みの値は[[基底URL]]が変わっても保持し続けるようです。 [TIME[2013-08-26T03:00:50.000Z]]