[1] [DFN[[RUBYB[[[型選択子]]]@en[type selector]]]]は、[[CSS修飾名]]によって[[マーク付け言語]]の[[要素型]]の名前を表したものです [SRC[>>2]]。 * 仕様書 [REFS[ - [2] [CITE@en[Selectors Level 3]] ([TIME[2011-09-29 22:16:17 +09:00]] 版) ]REFS] * 意味 [3] [[名前空間接頭辞]]を除いた部分 ([CODE(CSS)[[[|]]]] よりも後の部分) は[[要素]]の[[局所名]]を表しています [SRC[>>2]]。 ;; [4] 仕様書は[[名前空間]]に対応していれば [SRC[>>2]] という前提でそうなっていますが、 対応していない場合にどう解釈されるか明示的に規定していません。現実には最新の [[Webブラウザー]]は[[名前空間]]に対応したものばかりなのでもはや規定する意味はないのでしょうが。 [EG[ [10] [CODE(CSS)[h1]] は[[局所名]]が「[CODE[h1]]」である[[要素]]を表します。 ]EG] [5] [[名前空間接頭辞]]は、それに対応すると[[宣言]]された[[名前空間URL]]を表しています。 [[CSS]] では [CODE(CSS)@en[[[@nemaspace]]]] [[@規則]]で、 [[XBL2]] では [CODE(XMLa)@en[[[xmlns]]]] [[属性]]で[[名前空間接頭辞]]を[[宣言]]できます。 [EG[ [13] [PRE(CSS example code)[ @namespace hoge 'http://hoge/'; hoge|fuga { color: blue } ]PRE] ... は [CODE(URI)@en[http://hoge/]] という[[名前空間]]の[[局所名]] [CODE[fuga]] の[[要素]]の色を指定しています。 ]EG] [7] [[名前空間接頭辞]]が[[空文字列]]であれば、[[名前空間]]なし ([[null名前空間]]) を表します [SRC[>>2]]。 [EG[ [14] [CODE(CSS)@en[|h1]] は[[null名前空間]]の[[局所名]] [CODE(CSS)[h1]] の[[要素]]を表しています。 ]EG] [8] [[名前空間接頭辞]]が [CODE(CSS)[[[*]]]] であれば、任意の[[名前空間]]を表します。 [[null名前空間]]もこれに含まれます。 [SRC[>>2]] [EG[ [15] [CODE(CSS)[*|h1]] は [[HTML]] や [[XHTML2]] やその他任意の[[名前空間]]の [CODE(HTML)@en[h1]] [[要素]]を表しています。 ]EG] [9] [[名前空間接頭辞]]も [CODE(CSS)[[[|]]]] もなければ、[[既定名前空間]]が[[宣言]]されていればその[[名前空間]]を、 [[宣言]]されていなければすべての[[名前空間]] ([CODE(CSS)[[[*]]]] と同じ。) を表します。 [SRC[>>2]] [EG[ [16] [PRE(CSS example code)[ h1 { color: blue } ]PRE] ... はすべての[[名前空間]]の [CODE(CSS)[h1]] [[要素]]を表しています。一方 [PRE(CSS example code)[ @namespace 'http://www.w3.org/1999/xhtml'; h1 { color: blue } ]PRE] ... は [[HTML]] の [CODE(HTMLe)@en[h1]] [[要素]]だけを表しています。 ]EG] * 妥当性 [6] [[宣言]]されていない[[名前空間接頭辞]]を使うと[[非妥当]]となります [SRC[>>2]]。 * 大文字と小文字 [11] [[局所名]]の[[大文字]]と[[小文字]]の解釈は[[マーク付け言語]]に依存します。 [[HTML]] では [[ASCII大文字・小文字不区別]]です。 [[XML]] では[[大文字]]と[[小文字]]を区別します。 [12] [[名前空間接頭辞]]は[[大文字]]と[[小文字]]を区別します。 * 歴史 ** CSS2 [REFS[ - [25] [CITE@en[Selectors]] ([TIME[2001-01-16 00:22:58 +09:00]] 版) - [18] [CITE@en[Selectors]] ([TIME[2011-06-07 22:09:52 +09:00]] 版) ]REFS] [26] 「[[型選択子]]」という名前の仕様上の初出は >>25 です。それまでは明確な名称がありませんでした。 [20] [[CSS2]] まで[[型選択子]]と[[名前空間]]の関係は規定されていませんでした。 [[IE]] などは[[要素]]の[[修飾名]]と[[型選択子]]で[[一致]]するか判定する実装になっていました。 ;; [21] そのことが >>22 や初期の[[選択子3]]には参考として含まれていましたが、最終版からは削除されています。 ** 選択子3 [REFS[ - [22] [CITE[CSS Namespace Enhancements (Proposal)]] ([TIME[1999-06-26 07:15:29 +09:00]] 版) - [24] [CITE@en[CSS3 module: W3C Selectors]] ([TIME[2000-04-11 01:57:05 +09:00]] 版) ]REFS] [23] [[名前空間接頭辞]]をつけて[[名前空間]]に対応させることが >>22 で提案され、 >>24 で[[選択子3]]仕様に取り込まれました。 * 関連 [17] [[局所名]]のかわりに [CODE(CSS)[[[*]]]] を指定したものは[[普遍選択子]]と呼ばれます。