スタイルシート・リファレンス セレクタ

このページは、W3CのCSS2の仕様書にあるセレクタの書式について、ブラウザの対応状況を知る為に個人的目的で作ったページです。 仕様書に何が書いてあろうが、(将来どうなるかは置いて置いて)今現在ブラウザが対応していなければ、現状では意味が無いですから。 ということで、ここにはセレクタの簡単な説明とと簡単なサンプルがあります。 

セレクタ

html等の文書のどの要素に、どう言ったスタイルを適応させるかは指定するには、セレクタを使って指定します。 要素とは、div、p、span、table、a、h1等のことです。

セレクタには、単純に要素名をセレクタとしたもの、その前後の位置や入れ子関係によるもの、属性や疑似要素を用いたもの、その組合わせによるものなどがあります。

サンプル部分は別ファイルをインラインフレームに読み込んでいます。 サンプルが表示されない方はリロードして見てください。  またインラインフレーム未対応のブラウザをお使いの方は、サンプル表示部分にサンプルファイルへのリンクが表示されますので、そちらをクリックして御覧下さい。サンプルからこのページに戻るにはブラウザのバックボタンでお戻り下さい。

表のセレクタ名をクリックすると該当サンプルが見れます。

パターン意味IE6MOSFNN4IE5
全称セレクタ   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文字目に当てはまる。 ×
M: firefox1, Netscape8, Mozilla1.7.8     O:opera8     N:Netscape4     SF:Safari     MI5:MacIE5

○:対応
×:未対応
△: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: "「" "」" }

▲ページ・トップ

:first-child

指定された要素の中の、最初に記述された要素に当てはまる。

  • DIV要素の中の最初のP要素をオレンジ DIV > P:first-child { color : #f60; }

▲ページ・トップ

疑似要素セレクタ 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; }

▲ページ・トップ

copy right reserved by year of the cat home

サンプル
リファレンス
その他