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サイトをフルスクラッチにて構築することが可能です。お気軽にお問い合わせください。

    その他の制作ブログ一覧

    VPN接続とは?オススメVPNサーバーもご紹介! VPN接続とは?おすすめのVPNサーバーの選び方【初心者向けガイド】 インターネットの利用が日常的になった今、「VPN」という言葉を耳にする機会も増えたのではないでしょうか?この記事では、VPN接続の基本的な仕組みから、あなたにぴったりのVPNサーバーの選び方までをわかりやすく解説します。 VPN接続とは? VPN(Virtual Private Network)は、「仮想専用線」とも呼ばれ… WEB制作
    初心者でも安心!レンタルサーバーの選び方ガイド Webサイトを立ち上げるには、まず「レンタルサーバー」を選ぶ必要があります。でも、種類が多くて「どれを選べばいいの?」と迷ってしまいますよね。この記事では、初心者でも失敗しないレンタルサーバーの選び方をわかりやすく解説します。 1. レンタルサーバーとは? レンタルサーバーとは、Webサイトのデータを24時間インターネット上に公開できるようにするための「場所」のこと。自分のパソコンを使わずに、… WEB制作
    ラグビー団体のホームページ制作のコーディングを担当しました! 他社デザイナーさんより、WordPresサイトのコーディングの依頼をいただきました。 デザイナーさんにいただいたデザインをもとに、WordPressサイトの構築をしました。クライアントは非常に多くの会員さんを抱えた歴史のあるラグビー団体です。 お客様が管理画面から操作・更新しやすいサイトへ 今回のクライアントはスポーツ団体なので、スケジュールや試合結果の更新が頻繫にあることが予想されてい… WEB制作wordpressCSSHTMLjavascriptPHP
    名入れノベルティバッグを制作しました! 名入れノベルティバッグのご依頼を頂きました。 埼玉県新座市の不動産会社さまからのご依頼で、社名入りの手提げ袋を制作しました。 以前使っていたものを使い切ってしまったので、新しいデザインで作りたい!ということで、これまで使用されていたもののデザインと雰囲気が変わるようなデザインを目指しました。 主に営業の方が資料を入れるのに使ったり、お客様にお渡しするノベルティグッズを入れたり...といった用… DTPillustrator
    LINEスタンプを制作しました。たくさんのイラスト作画が大変でしたが、とても楽しい作業で納品まであっという間でした。 LINEスタンプ制作のご依頼を頂きました。 兵庫県三木市で彫刻刀の老舗メーカーとしてたくさんの彫刻刀を製造販売しているクライアントさんです。以前にホームページ制作をさせていただいたご縁からいろんなお仕事をご依頼いただいています。 そんな中でもLINEスタンプ制作のご相談をいただきました。クライアントさんのマスコットキャラクターをLINEスタンプにしたいとのこと。 何度かやったことのある仕事で… イラスト制作illustratorphotoshop
    一覧に戻る