[2] [DFN[ID[RUBYB[選択子]@en[selector]]]]は、指定された[[識別子]]を持つ[[要素]]に[[一致]]します。 * 仕様書 [REFS[ - [1] [CITE@en[Selectors Level 3]] ([TIME[2011-09-29 22:16:17 +09:00]] 版) ]REFS] * 意味 [4] [[ID選択子]]は[[識別子]]が一致する[[要素]]と[[一致]]します。 [5] [[識別子]]は[[文書]]中の唯一の[[要素]]に割り当てられた文字列です。 [[HTML]] では [CODE(HTMLa)@en[[[id]]]] [[属性]]によって指定できます。他の[[マーク付け言語]]では他の方法で指定できます。 [SRC[>>1]] [8] 1つの[[要素]]に複数の[[識別子]]があるかもしれませんが、そのいずれもが[[識別子]]として扱われます。 [SRC[>>1]] * 構文 [3] [[ID選択子]]は、 [CODE(CSS)[[['''#''']]]] の直後に [[CSS]] [[識別子]]を続けたものです [SRC[>>1]]。 [16] [[CSS 2.1]] や[[選択子]]の仕様書上に示された文法では [[HASH]] [[字句]]であり、 [CODE(CSS)[[[’’’#’’’]]]] の後に[[名前文字]]を使える ([[識別子]]に使える[[文字]]で、先頭の文字の制約なし) ということになっています。ですが仕様書本文で >>3 の通り[[識別子]]で[['''なければならない''']]とされているため、 やはり先頭に[[数字]]などを使うことはできません。実際に [[Webブラウザー]]もそのように実装しています。 [REFS[ - [17] ]REFS] ;; [18] にも関わらずそのように[[字句化]]されるのは、 [CODE(CSS)[[[]]]] が [CODE(CSS)[[[[['''#''']]]] の後に[[十六進数]]が続く構文を使っているためです。 * 識別子の指定 [6] [[選択子]]の仕様としては[[利用者エージェント]]がどのように[[識別子]]を知るかは規定しないとしています。 ハードコード、[[DTD]]、[[利用者]]にたずねるといった方法が例示されています。 また具体的な例として、 [[DOM3 Core]] ([CODE(DOMa)@en[[[isId]]]] など) や [CODE(XMLa)@en[[[xml:id]]]] も挙げられています。 [SRC[>>1]] [7] 従って、あるいは [[XML]] の [[DTD]] の[[処理]]が義務付けられていない故、 [[利用者エージェント]]は特定の[[属性]]が[[識別子]]であると知らないかもしれず、 その場合[[著者]]は[[ID選択子]]よりも[[属性選択子]]を使うべきかもしれません。 [SRC[>>1]] * 歴史 ** CSS1 [REFS[ - [11] [CITE[Cascading Style Sheets: a draft specification]] ([TIME[1995-10-07 10:35:41 +09:00]] 版) - [13] [CITE[Cascading Style Sheets: a draft specification]] ([TIME[1995-11-02 03:04:18 +09:00]] 版) - [14] [CITE[Cascading Style Sheets, level 1]] ([TIME[1999-02-05 02:57:01 +09:00]] 版) - [10] [CITE[Cascading Style Sheets, level 1]] ([TIME[2008-04-10 02:23:32 +09:00]] 版) ]REFS] [12] [[ID選択子]]は >>11 ではじめて言及されました。 >>13 で構文が定義されましたが、 これは[[属性選択子]]の[[部分集合]]でした。 [15] >>14 以後は現在と同じ構文になっています。 ** CSS2 [REFS[ - [9] [CITE@en[Selectors]] ([TIME[2011-06-07 22:09:52 +09:00]] 版) ]REFS]