DESIGN BLOGデザイン事務所の制作ブログ

【CSS疑似クラス】知っていると便利!::before / ::after 以外にも疑似クラスはたくさん!

    株式会社BMB

    CSSの世界で「疑似クラス」と聞いて真っ先に思い浮かぶのは、::before::after という人が多いのではないでしょうか?

    確かに、これらは装飾的な要素を追加したり、アイコンを表示したりするのにとても便利です。でも実は、CSSにはそれ以外にも便利な疑似クラスがたくさん用意されているんです。

    この記事では、意外と見落とされがちな疑似クラスをピックアップしてご紹介します!ちょっとした工夫で、HTMLを汚さずにスマートなデザインが実現できますよ。

    知っていると便利な疑似クラスたち

    :hover / :focus / :active - ユーザー操作に応じた変化
    button:hover {
      background-color: #eee;
    }

    :hover は、要素にマウスカーソルを乗せたときに適用されます。
    → 上記では、button にマウスを重ねると背景色が薄いグレーに変わります。

    input:focus {
      border-color: blue;
    }

    :focus は、フォームにカーソルが入ったとき(フォーカスされたとき)に適用されます。
    → 上記では、フォーカスされた input のボーダーが青になります。

    :first-child / :last-child / :nth-child(n) - 要素の位置によってスタイルを変える
    ul li:first-child {
      font-weight: bold;
    }

    :first-child は、親要素内で最初の子要素に適用されます。
    → 上記では、最初の li 要素の文字を太字にします。

    ul li:nth-child(2n) {
      background-color: #f9f9f9;
    }

    :nth-child(2n) は、2の倍数番目(偶数)の要素に適用されます。
    → 上記では、偶数番目のリストに背景色をつけて交互のスタイルにしています。(※2neven でもOK)

    :not() - 否定条件に使える
    button:not(.primary) {
      background-color: gray;
    }

    :not() は、特定の条件を除外してスタイルを適用したいときに使います。
    → 上記では、.primary クラスがついていない button に灰色の背景が適用されます。

    :empty - 中身がない要素にだけ適用
    p:empty {
      display: none;
    }

    :empty は、中身のない要素にスタイルを適用するための疑似クラスです。
    → 上記では、空の <p> タグを非表示にして余分なスペースを削除します。

    :checked - チェック状態のフォーム要素に反応
    input[type="checkbox"]:checked + label {
      text-decoration: line-through;
    }

    :checked は、チェックされた input 要素に適用されます。
    → 上記では、チェックされた項目に隣接する label に打ち消し線を表示します。

    :disabled / :enabled / :required - フォームの状態に応じたスタイル
    input:disabled {
      background-color: #ddd;
    }

    :disabled は、無効状態のフォーム要素に適用されます。
    → 上記では、操作できない input の背景をグレーにしています。

    input:required {
      border-color: red;
    }

    :required は、必須入力の input に適用されます。
    → 上記では、入力が必須のフィールドに赤いボーダーを表示して注意を促します。

    おまけ:フォーム系疑似クラスまとめ

    疑似クラス 説明
    :focus フォーカス時
    :checked チェック時
    :disabled 無効なフォーム要素
    :enabled 有効なフォーム要素
    :required 必須のフォーム要素
    :optional 任意のフォーム要素
    :valid / :invalid バリデーション結果に応じて

    まとめ

    疑似クラスを使いこなすことで、JavaScriptを使わずとも動きのあるUIや、状態に応じたスタイルをスマートに実装できます。

    HTMLはシンプルに、CSSは賢く。
    そんなスタイルの設計ができるようになると、フロントエンド開発がますます楽しくなりますよ!

    株式会社ビーエムビー

    株式会社ビーエムビー

    〒114-0031 東京都北区十条仲原1-4-8 商店街会館311 TEL&FAX:03-5948-5996

    東京都北区のWEBやDTP(印刷物)のデザイン制作会社です。ホームページ制作やLP(ランディングページ)の作成、ECサイト(楽天ストアなど)の構築などのWEBデザイン、チラシ・ポスター・名刺・パンフレット・看板などの印刷物デザインに対応しています。お客様の業務形態や用途に合わせたwordpressによるCMSサイトをフルスクラッチにて構築することが可能です。お気軽にお問い合わせください。

    その他の制作ブログ一覧

    【写真付き】エックスサーバーでWordPressをインストールする方法 この記事ではエックスサーバーで wordpressを簡単インストールする方法 を写真付きで詳しく説明しています。すでにエックスサーバーの契約と独自ドメインの設定が完了している方を対象に、サーバーパネルにログインするところから 実際に WordPress 管理画面にログインできるまでの流れを順を追って説明していきます。 1.サーバーパネルにログインする エックスサーバーのログインページ(… WEB制作wordpressWordPress
    知られざるHTMLタグ!知っておくと便利なタグ10選 HTMLはウェブページを構築するための基盤で、一般的に使われるタグはよく知られています。しかし、実際にはあまり注目されていないけれど、便利で強力なタグもたくさんあります。今回は、あまり知名度のないけれど知っておくと便利なHTMLタグを紹介し、その使い方とメリットを解説します。 1. <details> と <summary> 使い方: これらのタグは、ユーザーがクリック…
    【CSSのtransformとは?】使い方とアニメーション応用を解説 transform は、CSSの中でも非常に強力で、動きやアニメーションを加えるために使われるプロパティです。本記事では、CSS transform の基本的な使い方から、アニメーションへの応用例まで、わかりやすく解説します。 CSSのtransformとは?基本を押さえよう transformプロパティとは transform プロパティは、HTML要素の見た目を変形させるためのCSS… CSS
    VPN接続とは?オススメVPNサーバーもご紹介! VPN接続とは?おすすめのVPNサーバーの選び方【初心者向けガイド】 インターネットの利用が日常的になった今、「VPN」という言葉を耳にする機会も増えたのではないでしょうか?この記事では、VPN接続の基本的な仕組みから、あなたにぴったりのVPNサーバーの選び方までをわかりやすく解説します。 VPN接続とは? VPN(Virtual Private Network)は、「仮想専用線」とも呼ばれ… WEB制作
    初心者でも安心!レンタルサーバーの選び方ガイド Webサイトを立ち上げるには、まず「レンタルサーバー」を選ぶ必要があります。でも、種類が多くて「どれを選べばいいの?」と迷ってしまいますよね。この記事では、初心者でも失敗しないレンタルサーバーの選び方をわかりやすく解説します。 1. レンタルサーバーとは? レンタルサーバーとは、Webサイトのデータを24時間インターネット上に公開できるようにするための「場所」のこと。自分のパソコンを使わずに、… WEB制作
    一覧に戻る