スタイルシート・リファレンス セレクタ
このページは、W3CのCSS2の仕様書にあるセレクタの書式について、ブラウザの対応状況を知る為に個人的目的で作ったページです。 仕様書に何が書いてあろうが、(将来どうなるかは置いて置いて)今現在ブラウザが対応していなければ、現状では意味が無いですから。 ということで、ここにはセレクタの簡単な説明とと簡単なサンプルがあります。
セレクタ
html等の文書のどの要素に、どう言ったスタイルを適応させるかは指定するには、セレクタを使って指定します。 要素とは、div、p、span、table、a、h1等のことです。
セレクタには、単純に要素名をセレクタとしたもの、その前後の位置や入れ子関係によるもの、属性や疑似要素を用いたもの、その組合わせによるものなどがあります。
サンプル部分は別ファイルをインラインフレームに読み込んでいます。 サンプルが表示されない方はリロードして見てください。 またインラインフレーム未対応のブラウザをお使いの方は、サンプル表示部分にサンプルファイルへのリンクが表示されますので、そちらをクリックして御覧下さい。サンプルからこのページに戻るにはブラウザのバックボタンでお戻り下さい。
表のセレクタ名をクリックすると該当サンプルが見れます。
パターン | 意味 | IE6 | M | O | SF | NN4 | IE5 |
---|---|---|---|---|---|---|---|
全称セレクタ Universal selector | |||||||
* | 全ての要素に当てはまる。 | ○ | ○ | ○ | ○ | × | ○ |
タイプセレクタ Type selectors | |||||||
E | 全てのE要素に当てはまる。 | ○ | ○ | ○ | ○ | ○ | ○ |
グループ化 grouping | |||||||
E, F, G | 複数のセレクタをカンマで区切ってグループ化して同一のスタイルを適応することが出来る。 | ○ | ○ | ○ | ○ | ◇ | ○ |
子孫 Descendant selectors | |||||||
E F | E要素の下の全てのF要素に当てはまる。 | ○ | ○ | ○ | ○ | ○ | ○ |
子供セレクタ Child selectors | |||||||
E > F | E要素の直下のF要素に当てはまる。 | × | ○ | ○ | ○ | × | ○ |
隣接セレクタ Adjacent selectors | |||||||
E + F | E要素のすぐ次のF要素に当てはまる。 | × | ○ | ○ | ○ | × | ○ |
ファーストチャイルド疑似クラス The:first-child pseudo-class | |||||||
E:first-child | E要素が親要素の最初の子だった場合に当てはまる。 | × | ○ | ○ | ○ | × | ○ |
リンク疑似クラス The link pseudo-classes | |||||||
E:link E:visited |
ハイパーリンクの張られた要素に当てはまる。 ターゲットが未訪問と訪問済 | ○ | ○ | ○ | ○ | ○ | ○ |
ダイナミック疑似クラス The dynamic pseudo-classes | |||||||
E:active | 特定のユーザーのアクション時に当てはまる。 | △ | ○ | ○ | ○ | × | △ |
E:hover | △ | ○ | ○ | ○ | × | △ | |
E:focus | △ | ○ | ○ | ○ | × | △ | |
言語疑似クラス The :lang() pseudo-class | |||||||
E:lang( c ) | cの言語で書かれているE要素に当てはまる。 | × | ○ | ○ | ○ | × | ○ |
属性セレクタ Attribute selectors | |||||||
E[foo] | fooの属性を持つもの全ての要素に当てはまる。 属性値がなんであろうと関係ない。 | × | ○ | ○ | ○ | × | × |
E[foo="warning"] | fooの属性があり属性値がwarningのE要素に当てはまる。 | × | ○ | ○ | ○ | × | × |
E[foo~="warning"] | fooの属性の属性値がスペースで区切られたリストで、その属性値がwarningのE要素に当てはまる。 | × | ○ | ○ | ○ | × | × |
E[lang|="en"] | lang属性の属性値がenで始まるE要素に当てはまる。 | × | ○ | ○ | ○ | × | × |
クラスセレクタ Class selectors | |||||||
DIV.warning | fooの属性がclassで、そのの属性値がスペースで区切られたリストで、その属性値がwarningの要素に当てはまる。 | ○ | ○ | ○ | ○ | ○ | ○ |
IDセレクタ ID selectors | |||||||
E#myid | IDがmyidのE要素に当てはまる。 | ○ | ○ | ○ | ○ | × | ○ |
ファーストライン疑似要素 The first line elements | |||||||
:first-line | 要素内の最初の1行目に当てはまる。 | ○ | ○ | ○ | ○ | × | ○ |
ファーストレター疑似要素 The first letter elements | |||||||
:first-letter | 要素内の最初の1文字目に当てはまる。 | ○ | ○ | ○ | ○ | × | □ |
○:対応
×:未対応
△:a要素のみ対応
□:英語の文書は対応、日本語の文書は認識するが正しくない。
全称セレクタ Universal selector
*
全ての要素にマッチする。 単独での使用する場合以外は省略することができます。
*.warning と .warning は同じです。
- 全ての要素を文字色オレンジ、ボーダー緑 * { color : #f70; border : 1px dotted #790;}
グループ Grouping
E, F, G
複数のセレクタに対して、共通のスタイルを宣言する場合は、セレクタをカンマ 「,」 で区切ってグループ化することができる。
- H1とH2とH3をまとめてオレンジ H1, H2, H3 { color: #fa0; font-size : 100%;}
- IDとclassを指定された要素をまとめて緑 div#mystyle1, div#mystyle2, p.mystyle3 { color : #8a0;}
タイプセレクタ Type selectors
E
要素名によるマッチング。 下記の例は要素内にある全てのh1要素に当てはまる。
- h1要素のものをオレンジ h1 { color: #fc0; font-size : 100%; }
子孫セレクタ Descendant selectors
E F
特定の要素内Eの下にある全てのF要素に当てはまる。 単独で記述された、タイプ要素に優先する。 下記の例は、h1要素の中のem要素に当てはまる。
- h1要素のものをオレンヂ h1 { color: #fc0; }
- em要素のものをオレンジ em { color: #fc0; }
- h1要素の中のem要素のもを緑 h1 em { color: #cf0; }
子供セレクタ Child selectors
E > F
E要素の直接下のF要素に当てはまる。 下記の例は、div要素の直接下のspan要素に当てはまる。
- div要素の直接下のspan要素のもをピンク div > p { color: #fa0; }
隣接セレクタAdjacent sibling selectors
E + F
並列に並んだ後のF要素にスタイルを指定する。
- h1要素のすぐ次のp要素をオレンジ h1 + p { color: #f70; }
- p要素をピンク p { color: #faa; }
属性セレクタ Attribute selectors
[att]
属性名によるマッチング。 属性attがあるものに当てはまる。
- title属性があるものをピンク A[title] { color:#f77; }
- name属性があるものをオレンジ A[name] { color:#f70; }
- href属性があるものを緑 A[href] { color:#793; }
[att="val"]
属性名と属性値によるマッチング。 属性attがあり、更に値がvalのものに当てはまる
- title属性の値がmycatのものを背景色を薄いオレンジ A[title="mycat"] { background-color:#fc7; }
- name属性の値がmycatのものを太字 A[name="mycat"] { font-weight:bold; }
- href属性の値がhttp://google.comのものを斜体 A[href="http://google.com"] { font-style:italic; }
[att~="val"]
属性があり、その値がvalのものに当てはまる。要素に属性値を複数指定する時はスペースで区切る。
- title属性の値にcatがあるものをオレンジ [title~="cat"] { color: #f70; }
- class属性の値にAbyssinianがあるものをピンク [class~="Abyssinian"] { color: #f70; }
- a要素の中のclass属性の値がAbyssinianのものを太字 a[class~="Abyssinian"] { font-weight:bold; }
- a要素の中のclass属性の値がAbyssinianのものにマウスを乗せた時に背景を薄いオレンジにする
a[class~="Abyssinian"]:hover { background-color: #fc7; }
[att|="val"]
属性値がval-で始まるものに当てはまる。(言語のサブコードへの拡張が本来の目的)
- title属性の、属性値がen-で始まるものを赤 *[title|="en"] em { color : #f70 }
- class属性の、属性値がde-で始まるものを赤 *[class|="en"] em { color : #f70 }
- class属性の、属性値がja-で始まるものを赤 *[class|="ja"] em { color : #8a0 }
クラスセレクタ Class selectors
DIV.warning
class属性がwaningの全て要素に当てはまる。 属性セレクタE[foo~="warning"]に同じ。 要素にclassを指定。 1つのドキュメントに何度でも使用可能。 「.」の後に空白を開けずにclass名を記述する。
- class属性がmystyle01の全ての要素をオレンジ .mystyle01 { color: #f0f; }
- class属性の値がmystyle01のa要素のものを太字 a .mystyle01{ font-weight:bold; }
- class属性の値がmystyle01のa要素のものにマウスを乗せた時に背景を薄いオレンジにする
a .mystyle01:hover { background-color: #faa; } - class属性の値にcatとdogの両方があるものを緑 P.cat.dog { color : #793; }
IDセレクタ ID selectors
E#myid
ID属性の値(ID名)がmyidのものに当てはまる。 要素に名前を指定。 1つのドキュメントに1回のみ使用可能。 class属性より優先される。 「#」の後に空白を開けずにID名を記述する
- ID属性値がMYSTYLE01のものをオレンジ #MYSTYLE01 { color : #f70;}
- class属性値がmystyle02のものを緑 .mystyle02 { color : #7c0;}
疑似クラス・セレクタpuseudo selectors
E:link
E:visited
The link pseudo-classes リンク疑似クラス。 ハイパーリンクの張られた要素に当てはまる。 ターゲットが未訪問と訪問済
- a:linkを太字、オレンジ a:link{ font-weight:bold; color: #f70; }
- a:visitedを灰色 a:visited{ color: #666; }
- クラス名にmycatを指定されたa:link緑にする a.mycat:link { color: #680; }
E:active
E:hover
E:focus
The dynamic pseudo-classes ダイナミック疑似クラス。 特定のユーザーのアクション時に当てはまる。 IEでは、アンカー要素のみ。
- a:activeにボーダーで囲む a:active{ border:1px solid #111; }
- a:hoverの背景を黄色に a:hover{ background-color: #fc7; }
- a:focusを斜体にする a:focus{ font-style:italic; }
- p:hover{ background-color: #fc7; }
E:lang( c )
The :lang() pseudo-class 言語疑似クラス
- 英語で書かれたテキストの引用部分を’’で囲む :lang(en) q { quotes: "'" "'" }
- 日本語で書かれたテキストの引用を「」で囲む :lang(ja) q { quotes: "「" "」" }
疑似要素セレクタ Pseudo-elements
:first-line
first-line 最初の1行目に関する疑似要素
ブロック要素にのみ当てはまる。 指定した要素の最初の1行目にスタイルを当てはめる。
以下のプロパティのみ指定する事ができる。 fontプロパティ、colorプロパティ、backgroundプロパティ、「word-spacing」「letter-spacing」「text-decoration」「vertical-align」「text-transform」「line-height」「text-shadow」「clear」
- p要素の最初の1行目をオレンジ p:first-line { color: #f70; }
- p要素の最初の1文字目を緑 p:first-letter { color: #770; }
:first-letter
first-letter 最初の1文字目に関する疑似要素
ブロック要素にのみ当てはまる。 指定した要素の最初の1文字目にスタイルを当てはめる。
以下のプロパティのみ指定する事ができる。 fontプロパティ、colorプロパティ、backgroundプロパティ、「text-decoration」「vertical-align」 (floatがnoneの場合のみ)「text-transform」「line-height」marginプロパティ、paddingプロパティ、borderプロパティ、「float」「text-shadow」「clear」
- 全てのブロック要素の最初の文字を太文字 *:first-letter { font-weight: bold;}
- p要素の中の最初の文字を150%のサイズ p:first-letter { font-size: 140%; }
- p要素でclassにmy_f_lの値を指定された中の最初の文字をオレンジ p.my_f_l:first-letter {color: #f70;}
- span要素を斜体 span { font-style: italic; }