CSSで条件分岐はセレクタを使えば再現できる。初心者も要チェック

公開日: 2022.01.31
更新日: 2024.01.06
CSSで条件分岐はセレクタを使えば再現できる

条件分岐は、プログラミングをする上で非常に重要です。

ある一定の条件で動くような仕組みは、Webページだけでなく、Webアプリケーションやネイティブアプリケーションなど他のプログラミングでも必ず使われているからです。

CSSにおいても条件分岐をしたい場面に遭遇します。しかし、CSSでは他のプログラミング言語にあるようなif文は使えません

今回の記事では、CSSで条件分岐と同じ動きを実装させる方法を紹介します。

記事の後半では、Sassでif文を使う方法も解説していますので、最後までご覧ください。

CSSで条件分岐をしたい時はセレクタや擬似クラスを使う

条件分岐とは、条件により表示が変化したり、動きを変えたりするプログラミングにおいて重要な考え方です。

javaScriptやPHPなどのプログラミング言語で条件分岐をしたい時にはif構文を用います。

例えば、PHPにおけるif文は以下のように記述します。

PHP
<?php
$num = 1;
if ($num < 0) {
    echo "0";
} elseif ($num > 0) {
    echo "1"; 
}

条件を満たした時とそれ以外での表示に変化をつけれます。

if構文は非常に便利ですが、CSSでは使用できません。

そこで、CSSでは以下の2つの方法を駆使すれば条件分岐と同じように実装できます。

  • セレクタを活用する
  • 擬似クラスを活用する

それぞれの記述方法と種類を理解して、CSSでの条件分岐を表現しましょう。

セレクタを活用する

セレクタとは、HTMLの要素をCSSで指定する時の名前を指します。

例えば、CSSでp要素にスタイルを当てたい時は以下のように記述します。

CSS
p{
color:red;
}

上記のコードでいえば、pがセレクタになります。

セレクタの書き方により条件分岐が可能です。

例のコードを示します。

HTML
<div>divタグの中身</div>
<div>
    <p>divの中のpタグ</p>
</div>
<p>pタグの中身</p>
CSS
div p{
  color: red;
}
セレクタで条件分岐をしたときの結果の画像

上記のCSSでは、divの子要素であるpタグにのみcolorプロパティを当てる条件をセレクタで指定しました。

divで囲まれたpタグにのみ適用されるように指定できます。

他にも子要素のみを指定する条件分岐も可能です。

HTML
<section>
    <div>
    <p>divの中のp要素</p>
    </div>
    <p>sectionの子要素のp要素
    </p>
</section>
<div>
    <p>divの中のp要素</p>
</div>
CSS
div>p{
  color: blue;
}
子要素のみにスタイル当てる条件分岐の結果の画像

上記のコードでは、divの子要素であるpタグにしかcolorプロパティが適用されないような条件分岐を実装しています。

他にも、隣接セレクタなどでも条件を付けれるため、セレクタの使用で条件分岐が可能といえます。

擬似クラス

セレクタだけでなく、CSSの擬似クラスを使用することで条件分岐が可能です。

擬似クラスとは、ある一定の状態の時にスタイルを変化させることができます。

例えば、擬似クラスには:hoverがあります。

:hoverは、要素にマウスがホバーした時の挙動を制御できます。

これもまた条件分岐といえます。マウスがホバーしたかどうかを判断しているためです。

擬似クラスには他にも、:activeや:not()などがあります。

今回は、:not()と:activeを例に紹介します。

:not()で条件分岐

:not()を用いた例コードを以下に示します。

HTML
<div>divタグの中身</div>
<p>pタグの中身</p>
<section>セクションの中身</section>
CSS
body :not(p){
  color: red;
}
body :not(section){
  font-weight: bold;
}
擬似クラスの:notを使用した時の画像

擬似クラスである:not()は、()の中身以外の要素にスタイルを適用したい時に使用します。

上記のコードでは、pタグ以外の要素に文字色を赤にする指定と、sectionタグ以外の要素を太字にする指定を実装しています。

:not()は()の中の要素を除外する指定をしますので、条件分岐といえます。

if文に言い換えると、「pタグで指定されていなければ文字色を赤にして、pタグで指定されていればデフォルトの色で指定してください」となります。

:activeで条件分岐

次に、:activeを使用した条件分岐の例を紹介します。

:activeは、指定した要素がクリックされている最中のスタイルを制御します。

下記に例コードを示します。

HTML
<a href="#">ボタン</a>
CSS
a{
  width: 100px;
  height: 50px;
  text-decoration: none;
  display: block;
  background-color: greenyellow;
  text-align: center;
  line-height: 50px;
  border-radius: 10px;
}
a:active{
  background-color: orange;
  color: white;
}
擬似クラスのactiveを使用した時の画像

:activeの条件は、要素の上にマウスがホバーした状態で、左クリックが押されている時にスタイルを変更することです。

ユーザーがクリックしたかどうかを判断しやすくなります。

上記のように、擬似クラスはユーザーが操作している状態を条件として、要素を分岐していきます。

CSSで条件分岐を使う際には、セレクタや擬似クラスを駆使できれば、実現可能となります。

まとめ

今回は、CSSで条件分岐を実装する方法を紹介しました。

CSSだけでは、プログラミング言語にあるような条件分岐をさせるif構文を使えません。

しかし、CSSには便利なセレクタや擬似クラスがあるため、上手に活用して条件分岐のような挙動を制御できるようになります。

セレクタでは、子要素や孫要素を指定して条件を付けたり、擬似クラスでは現在の状態を条件として装飾を実装できます。

Sassを使用できればifを使えますが、CSSでだけで条件分岐をしたい時には本記事を参考にしてください。

どうしてもHTMLやCSSの学習が継続できないのであれば、DMMWebCampで無料相談を実施しているので是非ともお越しください。


プログラミングやパソコンを使って働きたい!

そのように考え、成長しているIT業界への転職を考えている方も増えてきました。

『IT業界に興味はあるけど、よくわからない…』
『パソコンとかそもそも苦手なのに私なんかにできるのかな』
『エンジニアって聞くけど難しそう』

反対にこのような声も聞く事があります。

そう考えている方は、一度ぜひ転職に成功したエンジニアの方のインタビューをご覧ください!

\プログラミングを学んで/
人生を変えた3名

インタビュー記事一覧 >

\プログラミングスクールを比較/

DMM WEBCAMP

COACHTECH

RUNTEQ

DMM WEBCAMP COACHTECH RUNTEQ
目指せる姿 WEBエンジニアへの転職
フリーランスエンジニア WEBエンジニアへの転職
分割払い
補助金 ×
転職保証 × ×
受講期間 12週間〜 3ヶ月〜 5ヶ月〜
特徴 【IT業界の転職を一番に考えたい方向け】
大手DMMが運営のプログラミングスクール
転職成功率98.8%
豊富なキャンペーンや補助金制度あり
【フリーランスを目指したい方向け】
フリーランスのエンジニアを最短で目指す
エンジニアと共に実際の案件開発を担当
【とことん勉強してから転職したい方向け】
1,000時間(約9カ月)のカリキュラムでしっかり勉強
企業の求める即戦力のWEBエンジニアを目指す
料金 329,350円〜
※給付金適用後
42万9,000円~ 55万円

公式HP

公式HP

公式HP

関連記事

資料請求

  • 短期集中で最速エンジニア転職を実現-転職成功者インタビュー一覧

    DMM WEBCAMPでは転職成功率98%を実現しています。本資料では、元警察官や元ラーメン屋など様々なバックグラウンドを持つ卒業生の声をお届けします。

    資料をダウンロードする
  • IT技術がもたらす3つの変化と身につけるべきスキル

    IT技術の発展により、今後10~20年程度で47%の仕事がなくなると言われています。どのような変化が訪れ、私達はどのようなスキルを身につけるべきかを解説します。

    資料をダウンロードする
  • 未経験がフリーランスエンジニアになる方法-年収アップで自由な働き方を手に入れる

    働き方改革やリモートワークの影響でフリーランスという働き方の人気は高まりつつあります。フリーランスエンジニアとして活躍するために必要な情報をお届けします。

    資料をダウンロードする

© 2024 WEBCAMP MEDIA Powered by AFFINGER5