ZeroPlus Gateについて

\ シェア /

FacBook
Twitter
LINE
はてブ
PPocket
ZeroPlus Media > Web制作 > HTML/CSS > CSSセレクタとは?よく使うセレクタやタグの指定方法をわかりやすく解説!

CSSセレクタとは?よく使うセレクタやタグの指定方法をわかりやすく解説!

HTML/CSS

2021/12/27

2024/03/18

CSS セレクタ サムネイル

セレクタとはCSSの基本構文の中で、どこにスタイルを当てるかを指定する部分を指します。

セレクタ{
 プロパティ:  値;
}

セレクタにはpやdivといったタグ名のほか、自分で付与したclassやid名も指定することができます。セレクタで指定した要素にのみ、{}の中に書いたスタイルが適用されます。
セレクタの指定方法をマスターすると、具体的に「あの要素だけに指定する」ことが容易にできるようになります。

この記事で身につく内容 
  • よく使うセレクタへの指定方法10個

ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

 

CSSにおけるセレクタへの指定方法

セレクタやタグにCSSを適用する場合、主に以下の方法があります。よく使う方法を10個ピックアップしました。

  • タグ自体にスタイルを適用する
  • classとidを指定する
  • 複数の要素を指定する
  • 特定の子要素に対してのみ指定する
  • +や~で同階層の要素を絞り込んで指定する
  • 子要素を > で絞り込んで指定する
  • n番目の要素を指定する
  • 並列の最初または最後の要素にのみ指定する
  • 特定の要素だけを指定しない
  • 全ての要素を指定する

 

タグ自体にスタイルを適用する

セレクタの基本的な使い方、タグ自体にスタイルを指定する記述を見てみましょう。

記述の例

<div>divタグの要素を指定します!</div>
div {
  color: red;
  font-size: 24px;
}

出力結果

divタグの要素を指定します!

 

classとidを指定する

これも基本的な使い方です。

タグにclassやidを付与し、セレクタで指定することで、classやidが付与されている要素にのみスタイルを適用することができます。

かめるん先生
かめるん先生
基本的にはクラスセレクタを使用して書くといいと思います!

記述の例

<div class="element">divタグの要素を指定します!</div>
<div id="element-id">divタグの要素を指定します!</div>
.element {
  color: red;
  font-size: 24px;
}
#element-id {
  color: blue;
  font-size: 24px;
}

出力結果

divタグの要素を指定します!
divタグの要素を指定します!

 

複数の要素を指定する

複数の要素に同じスタイルを適用したい場合は、「 , 」(カンマ)で区切ることでセレクタを複数つけることができます。

記述の例

<div class="element">divタグの要素を指定します!</div>
<div class="element2">二つ目のdivタグの要素を指定します!</div>
.element, .element2 {
  color: red;
  font-size: 24px;
}

出力結果

divタグの要素を指定します!
二つ目のdivタグの要素を指定します!

ZeroPlusgate50教材の動画

 

特定の小要素に対してのみ指定する

セレクタを半角スペース区切りで書くことで、特定の小要素にのみ絞り込んでスタイルを適用することができます。

特定の子要素に対してのみ指定する

かめるん先生
かめるん先生
半角スペースがないと、「両方のクラスを持つ」という別の指定の方法になってしまうので、注意しましょう!

 

記述の例

<div class="element">
  <p>divタグの中のpタグに指定します</p>
 <span>divタグの中のspanタグには適用されません</span>
</div>
.element p {
  color: red;
  font-size: 24px;
}

出力結果

divタグの中のpタグに指定します

divタグの中のspanタグには適用されません

.elementクラス内にあるpタグのみにスタイルが適用されました。

 

+や~で同階層の要素を絞り込んで指定する

+ や ~ (チルダ)で、絞り込んで指定する方法もあります。
  • +でセレクタを指定:同階層のすぐ後ろの要素のみ
  • ~でセレクタを指定:同階層の後ろに並ぶ要素

「+」を使った記述の例

「+」で同階層のすぐ後ろの要素のみ指定

<div class="element">divタグの要素を指定します!</div>
<div>この要素を赤くします!</div>
<div>divタグの要素を指定します!</div>
<div>divタグの要素を指定します!</div>
.element + div {
  color: red;
  font-size: 24px;
}
出力結果
divタグの要素を指定します!
この要素を赤くします!
divタグの要素を指定します!
divタグの要素を指定します!
.elementクラスのすぐ後のdivタグ「のみ」を+で指定したため、2つ目のdivタグにのみスタイルが適用されました。
かめるん先生
かめるん先生
上記のことを専門用語で「隣接セレクタ」と言ったりしますね!
「~」を使った記述の例
次に「~」の場合を見てみましょう。「~」は同階層の後ろに並ぶ要素をすべて指定します。
「~」で同階層の後ろに並ぶ要素を指定
<div class="element">divタグの要素を指定します!</div>
<div>この要素を赤くします!</div>
<div>この要素を赤くします!</div>
<div>この要素を赤くします!</div>
.element ~ div {
  color: red;
  font-size: 24px;
}
出力結果
divタグの要素を指定します!
この要素を赤くします!
この要素を赤くします!
この要素を赤くします!

.elementクラスと同階層の後ろに並ぶdivタグにスタイルが適用されました。

かめるん先生
かめるん先生
上記は専門用語で、「後続兄弟結合子」といいます!
かめるん先生
かめるん先生
専門用語は覚えておく必要はありませんが、知っておくと調べるときに意図した記事に出会いやすくなりますので、余裕のある方はぜひ知っておきましょう!

 

適用されない記述の例

+や~は同階層にしか適用されないため、階層が違うセレクタには指定されません。例えば以下の例では、.elementクラスのdivタグと階層が異なるため、スタイルが適用されません。

<div>
  <div class="element">divタグの要素を指定します!</div>
  <div>この要素を赤くします!</div>
  <div>この要素を赤くします!</div>
</div>
<div>階層が違うdivタグです!</div>
.element ~ div {
  color: red;
  font-size: 24px;
}

出力結果

divタグの要素を指定します!
この要素を赤くします!
この要素を赤くします!
階層が違うdivタグです!

 

子要素を >で絞り込んで指定する

特定の親要素内にある特定の小要素のみにスタイルを適用する場合は、親要素 > 子要素 のように「>」を使って指定できます。

子要素を >で絞り込んで指定する

記述の例

<div class="element">
  <p>子要素のpタグです!</p>
  <div>子要素のdivタグです!</div>
</div>
.element > p {
  color: red;
  font-size: 24px;
}

出力結果

子要素のpタグです!

子要素のdivタグです!
子要素のpタグにのみスタイルが適用されました。親要素(.elementクラスがついたdivタグ)に対して、子要素のpタグのみ指定したためです。

 

並列の最初または最後の要素のみ指定する

最初の要素にのみ指定する

タグ名:first-childとすることで、並列している最初の要素にのみスタイルが適用されます。

並列の最初の要素(first-child)にのみ指定する

記述の例

 <ul>
    <li>1番目</li>
    <li>2番目</li>
    <li>3番目</li>
    <li>4番目</li>
  </ul>
li:first-child {
  font-size: 24px;
  color: red;
}

出力結果

  • 1番目
  • 2番目
  • 3番目
  • 4番目

:first-childとしたことで、リストの最初の要素のみスタイルが適用されました。

 

最後の要素にのみ指定する

また、タグ名:last-childとすることで、並列している最後の要素にのみスタイルが適用されます。

並列の最後の要素(last-child)にのみ指定する

記述の例

<ul>
    <li>1番目</li>
    <li>2番目</li>
    <li>3番目</li>
    <li>4番目</li>
</ul>
li:last-child {
  font-size: 24px;
  color: red;
}

出力結果

  • 1番目
  • 2番目
  • 3番目
  • 4番目

:last-childとしたことで、リストの最後の要素のみスタイルが適用されました。

ZeroPlusgate50教材の動画

 

n番目を指定する

nを使用して、並列している特定のn番目の要素だけにスタイルを適用することができます。

 

特定のn番目の要素を指定する

特定のn番目の要素だけを指定する場合は、タグ名:nth-child(n)のように指定します。nには1, 2,など整数値が入ります。

記述の例

 <ul>
    <li>1番目</li>
    <li>2番目</li>
    <li>3番目</li>
    <li>4番目</li>
  </ul>
li:nth-child(2) {
  font-size: 24px;
  color: red;
}

出力結果

  • 1番目
  • 2番目
  • 3番目
  • 4番目

li:nth-child(2) としたことで、2番目の要素にのみスタイルが指定されました。

 

並列の偶数番目を指定する

並列している要素の偶数番目だけ指定したい場合は、タグ名:nth-child(2n) または nth-child(even) とします。

偶数番目を指定する

記述の例

 <ul>
    <li>1番目</li>
    <li>2番目</li>
    <li>3番目</li>
    <li>4番目</li>
  </ul>
li:nth-child(2n) {
  font-size: 24px;
  color: red;
}

/* または */

li:nth-child(even) {
  font-size: 24px;
  color: red;
}

出力結果

  • 1番目
  • 2番目
  • 3番目
  • 4番目

偶数番目のみ指定されました。nth-childの(2n)のnに0,1,2,3...と入っていき、

  • 2×0 = 0番目
  • 2×1 = 2番目
  • 2×2 = 4番目
  • 2×3 = 6番目

が指定されることになります。

かめるん先生
かめるん先生
「even」と「odd」は区別がつきにくいところですが、文字数で覚えると覚えやすいですよ!
「even=4文字→偶数番目」
「odd=3文字→奇数番目」

並列の奇数番目を指定する

セレクタの奇数番目のみを指定したい場合は、タグ名:nth-child(2n+1) または nth-child(odd)と指定します。

奇数番目を指定する

記述の例

 <ul>
    <li>1番目</li>
    <li>2番目</li>
    <li>3番目</li>
    <li>4番目</li>
  </ul>
li:nth-child(2n + 1) {
  font-size: 24px;
  color: red;
}

/* または */

li:nth-child(odd) {
  font-size: 24px;
  color: red;
}

出力結果

  • 1番目
  • 2番目
  • 3番目
  • 4番目

奇数番目のみに指定されました。nth-child(2n+1) の n に0,1,2,3...と入っていき、

  • 2×0 + 1 = 1番目
  • 2×1 + 1 = 3番目
  • 2×2 + 1 = 5番目
  • 2×3 + 1 = 7番目

が指定されることになります。

 

特定の要素だけを指定しない

特定の要素を除いてスタイルを指定する場合は、タグ名:not(指定したくない要素)と書きます。

特定の要素を指定しない(not)

以下は、3番目のli要素にのみスタイルを指定しない例です。

記述の例

  <ul>
    <li>1番目</li>
    <li>2番目</li>
    <li>3番目</li>
    <li>4番目</li>
  </ul>
li:not(:nth-child(3)) {
  font-size: 24px;
  color: red;
}

出力結果

  • 1番目
  • 2番目
  • 3番目
  • 4番目

3番目以外のセレクタにスタイルが適用されています。

かめるん先生
かめるん先生
こちらのnotと:first-childなどを合わせて、「最初の要素以外に」という指定の仕方はよく使いますね!

全ての要素を指定

全ての要素に対してスタイルを適用させる場合は*(アスタリスク)を使います。

記述の例

<div class="element">
  <p>divタグの中の要素を全て指定します</p>
  <span>divタグの中の要素を全て指定します</span>
  <div>divタグの中の要素を全て指定します</div>
</div>
.element * {
  color: red;
}

出力結果

divタグの中の要素を全て指定します

divタグの中の要素を全て指定します

divタグの中の要素を全て指定します

 

まとめ

紹介したセレクタの指定方法10個を表にまとめました。最後に確認してみましょう。

目的・用途

スタイル(適用例)

タグにスタイルを指定したい

タグ名 {
  スタイル
}

クラスやidに指定したい

クラス名またはid名 {
 スタイル
}

複数の要素に指定したい

要素間を「,」で区切る

タグ名, タグ名{
 スタイル
}

※クラスやidでも可能

特定の子要素のみに指定したい

セレクタを半角スペースで区切る

親要素 子要素 {
 スタイル
}

同階層の要素に絞り込んで指定したい

+で同階層のすぐ後ろの要素のみ指定

タグ名 + タグ名 {
 スタイル
}

~で同階層の後ろに並ぶ要素を指定

タグ名 ~ タグ名{
 スタイル
}

子要素を絞り込んで指定したい

特定の親要素内にある特定の子要素のみにスタイルを適用する

タグ名 > タグ名 {
 スタイル
}

n番目の要素に指定したい

nを使用して特定のn番目の要素にだけスタイルを適用する

/* n番目だけ指定する */
タグ名 :nth-child(n) {
 スタイル
}

/* 偶数番目だけ指定する */
タグ名 :nth-child(2n または even) {
 スタイル
}

/* 奇数番目だけ指定する */
タグ名 :nth-child(2n+1 または odd) {
 スタイル
}

最初・最後の要素に指定したい

/* 最初の要素だけ指定する */
タグ名 :first-child {
 スタイル
}

/* 最後の要素だけ指定する */
タグ名 :last-child {
 スタイル
}

特定の要素だけ指定しない

タグ名 :not(指定したくない要素) {
 スタイル
}

全要素を指定したい

*(アスタリスク)を使うと全ての要素を指定できる

タグ名 * {
 スタイル
}
ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

\ 学んだことをSNSでシェアしよう /

この記事の執筆者

ZeroPlus Media変種部

ZeroPlus Media編集部

ZeroPlusは、「フリーランス特化型プログラミングスクール」です。ZeroPlus Mediaでは、フリーランスとして活躍する際に役立つ有益なプログラミングやWeb制作に関する情報を発信しています。

質問について

ZeroPlus Media読者限定で質問対応をおこなっています。以下の2つの方法で質問を受け付けています。

選べる2つの質問方法

1

Google Foam(テキスト)で質問

mail

フォーム送信

メールで解答

formで質問
2

Google meet(オンラインmtg)で質問

meet

日時選択

メールを受け取る

メールからmtgに参加

meetで質問
ZeroPlus Gateについて

あなたの目的に合わせた2つのサービス

あなたの目的に合わせたZeroPlusの2つのサービス
基礎からフリーランスレベルまで本質的な学びを提供しています

完全無料!30日間で学びきれる
プログラミンスクールZeroPlus Gate

  • お金をかけずに、学習を進めたい
  • Webサイトを作れるようになりたい
  • メンターや講師に質問しながら学習したい

詳しくはこちらから

フリーランス特化型
プログラミングスクール ZeroPlus

  • プログラミング学習で悩んでいる
  • 仲間と一緒に学習したい
  • フリーランスとしての総合的な力を養いたい

詳しくはこちらから