uri

概要

<url> CSS データ型はリソースへのポインタを意味します。固有の構文を持たず、url() 関数記法によってのみ表現できます。

URI? それとも URL?

URIURL には違いがあります。URL はリソースの場所 (location)を表現し、URI はリソースの id を表現します。URI はリソースの場所(URL)であるかもしれず、リソースの名前(URN)かもしれません。

CSS Level 1 では、url() 関数記法は URL、すなわち場所を表すために導入されました(場所とは、<url> CSS データ型です。ただし、明示的な定義はされませんでした)。

CSS Level 2 では、同じ関数記法で URL や URN といった すべての URI を表現できるように拡張されました。このため、url()<uri> CSS データ型を作るのに使われるというややこしい状況が生まれました。ややこしいだけでなく、通常は、URN が CSS で使われることはほとんどありません。

この修正のため、CSS Level 3 では初めの定義に立ち戻り、今回は明示的な定義がされました。関数表記 url()は <url> CSS データ型を意味し、もはやもっと総称的な <uri> CSS データ型を意味しなくなりました。

注意してほしいのは、こうした意味的な詳細は、ウェブの著作者やこのデータ型の実装細部をあまり変化させないということです。

多くの CSS プロパティ が URL を値として受け入れます。例えば、background-imagecursor@font-facelist-style などです。

url() 関数記法

URI は単一引用符か二重引用符で囲うこともできます。相対 URI を使うことができます。相対 URI は スタイルシートの URL(ウェブページの URL ではありません)に基づく URI です。

構文

 <a_css_property>:  url("http://mysite.example.com/mycursor.png")

 <a_css_property>:  url(http://mysite.example.com/mycursor.png)

注記: Firefox 15以降、0x7e より大きな制御文字は、引用符で囲わない url() 記法では使えなくなりました。詳細は バグ 752230 をご覧ください。

.topbanner { background: url("topbanner.png") #00D no-repeat fixed; }
ul { list-style: square url(http://www.example.com/redball.png) }

仕様

仕様書 策定状況 コメント
CSS Values and Units Module Level 3 勧告候補 CSS Level 2 (Revision 1) から重要な変更無し
CSS Level 2 (Revision 1) 勧告 CSS Level 1 から重要な変更無し
CSS Level 1 勧告  

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 1.0 1.0 (1.0) 3.0 3.5 1.0 (85)
機能 Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
基本サポート 1.0 1.0 (3.5) yes yes 1.0

関連情報

Document Tags and Contributors

Contributors to this page: sosleepy, ethertank
最終更新者: ethertank,
サイドバーを隠す