CSS セレクター
CSS(カスケーディングスタイルシート)は、スタイルを適用する HTML 要素を選択するためのさまざまなセレクターを提供します。
CSS セレクターは、スタイルを適用したい要素を選択するためのパターンです。
下の表の「CSS」列は、CSS バージョンでの定義を示します。CSS1、CSS2 および CSS3 はカスケーディングスタイルシート(Cascading Style Sheets)の異なるバージョンであり、各バージョンはウェブページのスタイルの制御とデザインを改善するために新しい機能と特徴を導入しました。
一般的な CSS セレクター
以下は一般的な CSS セレクターです:
要素セレクター(Element Selector):要素名によって HTML 要素を選択します。
次のコードのように、pセレクターはすべての<p>要素:
p {
color: blue;
}
クラスセレクター(Class Selector):クラス名によって特定のクラスを持つ HTML 要素を選択します。
クラスセレクターは.で始まり、その後ろにクラス名が続きます。
次のコードのように、.highlightセレクターは、クラスが"highlight"であるすべての要素を選択します。
.highlight {
background-color: yellow;
}
ID セレクター(ID Selector):要素の一意の識別子(ID)によって HTML 要素を選択します。
ID セレクターは#で始まり、その後ろに ID 名が続きます。
次のコードのように、#サンプルセレクターは、ID が"サンプル"である要素を選択します。
#サンプル {
width: 200px;
}
属性セレクター(Attribute Selector):要素の属性を使用して HTML 要素を選択します。属性セレクターは、属性名と属性値に基づいて選択できます。
次のコードのように、input[type="text"]セレクターはすべてのtype属性が"text"の <input> 要素を選択します。
input[type="text"] {
border: 1px solid gray;
}子孫セレクター(Descendant Selector):要素の子孫関係を指定して HTML 要素を選択します。
子孫セレクターはスペースを使用して要素名を区切ります。
次のコードのように、div p セレクターは <div> 要素内のすべての <p> 要素を選択します。
div p {
font-weight: bold;
}より多くのセレクターは以下の表を参照してください:
| セレクター | 例 | 例の説明 | CSS |
|---|---|---|---|
| .class | .intro | class="intro" を持つすべての要素を選択します | 1 |
| #id | #firstname | id="firstname" を持つすべての要素を選択します | 1 |
| * | * | すべての要素を選択します | 2 |
| element | p | すべての <p> 要素を選択します | 1 |
| element,element | div,p | すべての <div> 要素と <p> 要素を選択します | 1 |
| element.class | p.hometown | class="hometown" のすべての <p> 要素を選択します | 1 |
| element element | div p | <div> 要素内のすべての <p> 要素を選択します | 1 |
| element>element | div>p | 親が <div> 要素であるすべての <p> 要素を選択します | 2 |
| element+element | div+p | <div> 要素の直後にある最初の <p> 要素をすべて選択します | 2 |
| [attribute] | [target] | target 属性を持つすべての要素を選択します | 2 |
| [attribute=value] | [target=-blank] | target="-blank" を使用するすべての要素を選択します | 2 |
| [attribute~=value] | [title~=flower] | title 属性に単語 "flower" を含むすべての要素を選択します | 2 |
| [attribute|=language] | [lang|=en] | lang 属性が次の値と等しいen、またはen-で始まるすべての要素を選択します | 2 |
| :link | a:link | すべての未訪問リンクを選択します | 1 |
| :visited | a:visited | すべての訪問済みリンクを選択します | 1 |
| :active | a:active | アクティブなリンクを選択します | 1 |
| :hover | a:hover | マウスがリンクの上にあるときを選択します | 1 |
| :focus | input:focus | フォーカスを持つ入力要素を選択します | 2 |
| :first-letter | p:first-letter | 各 <p> 要素の最初の文字を選択します | 1 |
| :first-line | p:first-line | 各 <p> 要素の最初の行を選択します | 1 |
| :first-child | p:first-child | <p> 要素がその親の最初の子である場合にのみスタイルを指定します。 | 2 |
| :before | p:before | 各 <p> 要素の前にコンテンツを挿入します | 2 |
| :after | p:after | 各 <p> 要素の後にコンテンツを挿入します | 2 |
| :lang(language) | p:lang(it) | lang 属性の開始値が "it" であるすべての <p> 要素を選択します | 2 |
| element1~element2 | p~ul | <p> 要素の後の各 <ul> 要素を選択します | 3 |
| [attribute^=value] | a[src^="https"] | src 属性の値が "https" で始まる各要素を選択します | 3 |
| [attribute$=value] | a[src$=".pdf"] | src 属性の値が ".pdf" で終わる各要素を選択します | 3 |
| [attribute*=value] | a[src*="サンプル"] | src 属性の値が部分文字列 "サンプル" を含む各要素を選択します | 3 |
| :first-of-type | p:first-of-type | 各 <p> 要素のうち、その親の最初の <p> 要素であるものを選択します | 3 |
| :last-of-type | p:last-of-type | 各 <p> 要素のうち、その親の最後の <p> 要素であるものを選択します | 3 |
| :only-of-type | p:only-of-type | 各 <p> 要素のうち、その親の唯一の <p> 要素であるものを選択します | 3 |
| :only-child | p:only-child | 各 <p> 要素のうち、その親の唯一の子要素であるものを選択します | 3 |
| :nth-child(n) | p:nth-child(2) | 各 <p> 要素のうち、その親の2番目の子要素であるものを選択します | 3 |
| :nth-last-child(n) | p:nth-last-child(2) | 各 <p> 要素のうち、最後の子から数えてその親の2番目の子要素であるものを選択します | 3 |
| :nth-of-type(n) | p:nth-of-type(2) | 各 <p> 要素のうち、その親の2番目の <p> 要素であるものを選択します | 3 |
| :nth-last-of-type(n) | p:nth-last-of-type(2) | 各 <p> 要素のうち、最後の子から数えてその親の2番目の <p> 要素であるものを選択します | 3 |
| :last-child | p:last-child | 各 <p> 要素のうち、その親の最後の子であるものを選択します。 | 3 |
| :root | :root | ドキュメントのルート要素を選択します | 3 |
| :empty | p:empty | 子を一切持たない各 <p> 要素(テキストノードを含む)を選択します | 3 |
| :target | #news:target | 現在アクティブな #news 要素(そのアンカー名を含むクリックされた URL)を選択します | 3 |
| :enabled | input:enabled | すべての有効な入力要素を選択します | 3 |
| :disabled | input:disabled | すべての無効な入力要素を選択します | 3 |
| :checked | input:checked | 選択された各入力要素を選択します | 3 |
| :not(selector) | :not(p) | <p> 要素ではない各要素を選択します | 3 |
| ::selection | ::selection | 要素内でユーザーによって選択された、またはハイライト状態の部分に一致します | 3 |
| :out-of-range | :out-of-range | 値が指定範囲外である input 要素に一致します | 3 |
| :in-range | :in-range | 値が指定範囲内である input 要素に一致します | 3 |
| :read-write | :read-write | 読み取り可能および書き込み可能な要素に一致するために使用されます | 3 |
| :read-only | :read-only | "readonly"(読み取り専用)属性が設定された要素に一致するために使用されます | 3 |
| :optional | :optional | 任意(オプション)の入力要素に一致するために使用されます | 3 |
| :required | :required | "required" 属性が設定された要素に一致するために使用されます | 3 |
| :valid | :valid | 入力値が有効な要素に一致するために使用されます | 3 |
| :invalid | :invalid | 入力値が無効な要素に一致するために使用されます | 3 |
| :has | :has | その子孫要素に基づいて要素を選択できます。 | 3 |
| :is | :is | 任意の数のセレクターを引数として受け取り、それらのセレクターが一致する要素の和集合を返します。 | 3 |