【CSS】セレクター - スタイル(装飾)の対象
CSSでスタイルの適用要素を指定するセレクターについてご紹介します。
セレクター
セレクターはスタイルの適用要素を指定する文字列です。
様々な方法でセレクターを定義することができます。
基本的なセレクター
要素の種類
要素の種類を指定できます。
要素の種類 {
プロパティ名: プロパティ値;
}
次の例はh1要素にスタイルを適用します。
<style>
h1 {
color: red;
}
</style>
<h1>CSSとは</h1>
<p>CSSの正式名称はCascading Style Sheetsです。</p>
ID
要素のid属性値を指定できます。
シャープ(#
)に続いてid属性値を記述します。
#id属性値 {
プロパティ名: プロパティ値;
}
次の例はid属性値がtitle
の要素にスタイルを適用します。
<style>
#title {
color: red;
}
</style>
<h1 id="title">CSSとは</h1>
<p>CSSの正式名称はCascading Style Sheetsです。</p>
クラス
要素のclass属性値を指定できます。
ドット(.
)に続いてクラス属性値を記述します。
.class属性値 {
プロパティ名: プロパティ値;
}
次の例はクラス属性値がtitle
の要素にスタイルを適用します。
<style>
.title {
color: red;
}
</style>
<h1 class="title">CSSとは</h1>
<p>CSSの正式名称はCascading Style Sheetsです。</p>
属性
要素の特定属性を指摘できます。
[属性名="値"] {
プロパティ名: プロパティ値;
}
次の例はlang属性値がja
の要素にスタイルを適用します。
<style>
[lang="ja"] {
color: red;
}
</style>
<h1 lang="ja">CSSとは</h1>
<p>CSSの正式名称はCascading Style Sheetsです。</p>
擬似クラス
要素の擬似クラス(状態)を指定できます。
擬似クラスについては次の記事をご覧ください。
:擬似クラス {
プロパティ名: プロパティ値;
}
次の例はhover
(カーソルが被っている状態)の要素にスタイルを適用します。
<style>
:hover {
color: red;
}
</style>
<h1>CSSとは</h1>
<p>CSSの正式名称はCascading Style Sheetsです。</p>
擬似要素
要素の擬似要素(部分)を指定できます。
擬似要素については次の記事をご覧ください。
:擬似要素 {
プロパティ名: プロパティ値;
}
次の例はbefore
(最初の子要素)の部分にスタイルを適用します。
<style>
::before {
content: "> ";
}
</style>
<h1>CSSとは</h1>
<p>CSSの正式名称はCascading Style Sheetsです。</p>
全て
全ての要素を指定できます。
* {
プロパティ名: プロパティ値;
}
次の例は全ての要素のテキストカラーを赤色にします。
<style>
* {
color: red;
}
</style>
<h1>CSSとは</h1>
<p>CSSの正式名称はCascading Style Sheetsです。</p>
複合的なセレクター
セレクターは組み合わせて指定できます。
組み合わせる順序は要素名を使用する場合、要素名が最初になるようにします。
次の例は『p要素かつクラスがimportant』の要素にスタイルを意味します。
<style>
p.important {
color: red;
}
</style>
<h1 class="important">CSSとは</h1>
<p class="important">CSSの正式名称はCascading Style Sheetsです。</p>
<p>プログラミング言語に分類されます。</p>
結合的なセレクター
複数セレクターを結合して、要素の関係を含めたセレクターにできます。
結合には主に4種類あります。
子孫結合
子孫結合は前のセレクターに対して後のセレクターが子または孫であることを表わします。
定義方法は対象のセレクター間をスペースで区切って指定します。
前セレクター 後セレクター {
プロパティ名: プロパティ値;
}
次の例はsection要素の子孫であるp要素にスタイルを適用します。
<style>
section p {
color: red;
}
</style>
<section>
<p>CSSの正式名称はCascading Style Sheetsです。</p>
<div>
<p>プログラミング言語に分類されます。</p>
</div>
</section>
<p>CSSでHTMLやXMLの要素のスタイル(装飾)を設定することができます。</p>
子結合
子結合は前のセレクターに対して後のセレクターが子であることを表わします。
定義方法は対象のセレクター間を大なり括弧(>
)で区切って指定します。
前セレクター > 後セレクター {
プロパティ名: プロパティ値;
}
次の例はsection要素の子であるp要素にスタイルを適用します。
<style>
section > p {
color: red;
}
</style>
<section>
<p>CSSの正式名称はCascading Style Sheetsです。</p>
<div>
<p>プログラミング言語に分類されます。</p>
</div>
</section>
<p>CSSでHTMLやXMLの要素のスタイル(装飾)を設定することができます。</p>
次兄弟結合
次兄弟結合は前のセレクターに対して後のセレクターが兄弟かつ次の要素であることを表わします。
定義方法は対象のセレクター間をプラス(+
)で区切って指定します。
結合方法はセレクターをプラス(+
)で区切って定義します。
前セレクター + 後セレクター {
プロパティ名: プロパティ値;
}
次の例はsection要素の次兄弟要素かつp要素にスタイルを適用します。
<style>
section + p {
color: red;
}
</style>
<section>
<p>CSSの正式名称はCascading Style Sheetsです。</p>
<p>プログラミング言語に分類されます。</p>
</section>
<p>CSSでHTMLやXMLの要素のスタイル(装飾)を設定することができます。</p>
後続兄弟結合
後続兄弟結合は前のセレクターに対して後のセレクターが兄弟かつ以降の要素であることを表わします。
定義方法は対象のセレクター間をチルダ(~
)で区切って指定します。
前セレクター ~ 後セレクター {
プロパティ名: プロパティ値;
}
次の例はsection要素の後続兄弟要素かつh2要素にスタイルを適用します。
<style>
section ~ h2 {
color: red;
}
</style>
<h1>CSSとは</h1>
<section>
<p>CSSの正式名称はCascading Style Sheetsです。</p>
<p>プログラミング言語に分類されます。</p>
</section>
<h2>内部スタイルシート</h2>
<p>HTMLのstyle要素にスタイルを定義します。</p>
<h2>外部スタイルシート</h2>
<p>HTMLファイルとは別にCSSファイルを作り、link要素でスタイルシートを読み込みます。</p>
<h2>インラインスタイルシート</h2>
<p>HTML要素のstyle属性にスタイルを定義します。</p>
結合の応用
3つ以上のセレクターを結合できます。
次の例はsection要素の子孫であるdiv要素の子孫であるp要素にスタイルを適用します。
<style>
section div p {
color: red;
}
</style>
<h1>CSSとは</h1>
<section>
<p>CSSの正式名称はCascading Style Sheetsです。</p>
<div>
<p>プログラミング言語に分類されます。</p>
</div>
</section>
<div>
<p>内部スタイルシートはHTMLのstyle要素にスタイルを定義します。</p>
<p>外部スタイルシートはHTMLファイルとは別にCSSファイルを作り、link要素でスタイルシートを読み込みます。</p>
<p>インラインスタイルシートはHTML要素のstyle属性にスタイルを定義します。</p>
</div>
複数のセレクター
複数のセレクターを同時に指定するには、カンマ(,)で区切って定義します。
Aセレクター, Bセレクター {
プロパティ名: プロパティ値;
}
次の例はh1要素とp要素にスタイルを適用します。
<style>
h1, p {
color: red;
}
</style>
<h1>CSSとは</h1>
<p>CSSの正式名称はCascading Style Sheetsです。</p>