CSSの擬似要素とは?基本的な擬似要素10選!使い方を解説!

【 2025/07/05 16:06 更新 】
目次

    CSSの擬似要素とは?

    CSSの擬似要素は、特定の要素を追加して、スタイルを反映できる仕組みです。

    ポイント

    擬似要素を使うと、HTMLタグで定義せずに要素が追加される

    こじはな

    擬似要素はたくさんの種類があるよ〜!

    【 CSS擬似要素の書き方 】

    セレクタ::擬似要素名 {
        スタイル
    }

    〜 例 〜
    .example-class::before {
        content: '⚫︎'; /* 要素の最初に'⚫︎'が入る */
    }

    セレクタとは

    セレクタとは、CSSとHTMLを紐づける名前や条件のようなものです。
    HTML上のどの要素を示すのかを定義します。

    【 セレクタの書き方 】

    リンク先のトップ画像

    CSS
    擬似要素
    ::before|要素の先頭にコンテンツ(内容)を挿入

    擬似要素beforeは、要素内の先頭にコンテンツ(内容)を挿入できます。

    ここでのコンテンツ

    ここでいうコンテンツとは、文字や装飾のことを指します。

    displayプロパティの指定によってはblockやflexなど、要素の種類を変更できます。

    【 要素の種類に関する記事 】

    リンク先のトップ画像

    【 ::beforeの書き方 】

    セレクタ::before {
        content: "文字"; /* 必須 */
        その他スタイル...
    }

    〜 例 〜
    .before-circle::before {
        content: "⚫︎"; /* 要素の最初に"⚫︎"が入る */
    }

    【 コード例 】

    【 HTML 】
    【 CSS 】

    ブラウザで実行するとこんな感じです。

    CSSの単位"em"とは
    CSSのemでサイズ指定したイメージ

    CSSのサイズ単位「em」とは、親要素のフォントサイズを基準とした単位です。

    他にも色々なサイズ単位があります。

    【 CSSのサイズ単位に関する記事 】

    リンク先のトップ画像
    display: inline-block;

    displayプロパティには要素の種類を指定できます。
    値"inline-block"は、inline要素(文章の一部)とblock要素の特徴を合わせ持つ要素となります。

    【 inline-block要素の特徴 】

    • inline要素のように前後が強制改行されない
    • width・height・margin・paddingなどblock要素用のプロパティが反映される

    【 基本的な要素の種類 】

    block
    ブロック
    のようなイメージ。
    要素の前後が強制的に改行されるblock要素のイメージ
    inline
    インライン

    文章の一部分のイメージ。
    要素の前後は改行されない

    inline要素のイメージ
    inline-block
    インラインブロック

    blockだけど改行されないイメージ。
    要素の前後は改行されない

    inline-block要素のイメージ
    flex
    フレックス
    flex要素内にある複数の要素を1列に並べたり、並べ方をカスタマイズできるブロック要素。
    要素の前後が強制的に改行される

    【詳しく知りたい方はこちら】
    CSSのflexとは?Web画面必須なflexの基本的な使い方を詳しく解説! | こじはなNote flex要素のイメージ
    border-radius: サイズ;

    border-radiusプロパティは角丸を指定できます。

    値にサイズを指定して、どのくらい角を丸くするか指定できます。

    CSS
    擬似要素
    ::after|要素の末尾にコンテンツ(内容)を挿入

    擬似要素afterは、要素内の末尾にコンテンツ(内容)を挿入できます。

    ここでのコンテンツ

    ここでいうコンテンツとは、文字や装飾のことを指します。

    displayプロパティの指定によってはblockやflexなど、要素の種類を変更できます。

    【 要素の種類に関する記事 】

    リンク先のトップ画像

    【 ::afterの書き方 】

    セレクタ::after {
        content: "文字"; /* 必須 */
        その他スタイル...
    }

    〜 例 〜
    .after-circle::after {
        content: "⚫︎"; /* 要素の後ろに"⚫︎"が入る */
    }

    【 コード例 】

    【 HTML 】
    【 CSS 】

    ブラウザで実行するとこんな感じです。

    CSSの単位"em"とは
    CSSのemでサイズ指定したイメージ

    CSSのサイズ単位「em」とは、親要素のフォントサイズを基準とした単位です。

    他にも色々なサイズ単位があります。

    【 CSSのサイズ単位に関する記事 】

    リンク先のトップ画像
    display: inline-block;

    displayプロパティには要素の種類を指定できます。
    値"inline-block"は、inline要素(文章の一部)とblock要素の特徴を合わせ持つ要素となります。

    【 inline-block要素の特徴 】

    • inline要素のように前後が強制改行されない
    • width・height・margin・paddingなどblock要素用のプロパティが反映される

    【 基本的な要素の種類 】

    block
    ブロック
    のようなイメージ。
    要素の前後が強制的に改行されるblock要素のイメージ
    inline
    インライン

    文章の一部分のイメージ。
    要素の前後は改行されない

    inline要素のイメージ
    inline-block
    インラインブロック

    blockだけど改行されないイメージ。
    要素の前後は改行されない

    inline-block要素のイメージ
    flex
    フレックス
    flex要素内にある複数の要素を1列に並べたり、並べ方をカスタマイズできるブロック要素。
    要素の前後が強制的に改行される

    【詳しく知りたい方はこちら】
    CSSのflexとは?Web画面必須なflexの基本的な使い方を詳しく解説! | こじはなNote flex要素のイメージ
    border-radius: サイズ;

    border-radiusプロパティは角丸を指定できます。

    値にサイズを指定して、どのくらい角を丸くするか指定できます。

    CSS
    擬似要素
    ::first-line|最初の1行にスタイル適用

    擬似要素first-lineは、ブロック要素内の最初の1行にスタイル適用できます。

    ブロック要素のみ適用

    ブロック要素以外の要素には効きません

    【 ::first-lineの書き方 】

    セレクタ::first-line {
        スタイル...
    }

    〜 例 〜
    .first-line-test::first-line {
        color: blue;
    }

    【 コード例 】

    【 HTML 】
    【 CSS 】

    ブラウザで実行するとこんな感じです。

    CSS
    擬似要素
    ::first-letter|最初の1文字にスタイル適用

    擬似要素first-letterは、ブロック要素内の最初の1文字にスタイル適用できます。

    ブロック要素のみ適用

    ブロック要素以外の要素には効きません

    【 ::first-letterの書き方 】

    セレクタ::first-letter {
        スタイル...
    }

    〜 例 〜
    .first-letter-test::first-letter {
        color: blue;
    }

    【 コード例 】

    【 HTML 】
    【 CSS 】

    ブラウザで実行するとこんな感じです。

    CSS
    擬似要素
    ::selection|ユーザーが選択したテキスト部分にスタイル適用

    擬似要素selectionは、ユーザーが選択したテキスト部分にスタイル適用できます。

    selectionで適用できるCSSプロパティには制限があり、基本的にcolor・background-color・text-shadow・caret-colorが使えます

    【 ::selectionの書き方 】

    セレクタ::selection {
        スタイル...
    }

    〜 例 〜
    .selection-test::selection {
        color: blue;
    }

    【 コード例 】

    【 HTML 】
    【 CSS 】

    ブラウザで実行するとこんな感じです。

    実際に文字を選択してみてください!

    CSS
    擬似要素
    ::placeholder|プレースホルダーのテキストにスタイル適用

    擬似要素placeholderは、プレースホルダーのテキストにスタイル適用できます。

    【 使えるinputタグのtype属性値 】

    • type="text":文字を入力できるテキストボックス。
    • type="password":パスワード入力用のテキストボックス
    • type="email":メールアドレス入力用のテキストボックス
    • type="tel":電話番号入力用のテキストボックス
    • type="search":検索用のテキストボックス
    • type="number":数値入力用のテキストボックス

    【 使えるタグ(inputタグ以外) 】

    • textareaタグ:複数行の文字を入力できるテキストボックス。
    プレースホルダーとは

    プレースホルダーとは、input要素やtextarea要素のテキストボックス内に、入力前に表示される薄い文字のことです。

    placeholder属性にテキストを設定できます。

    〜例〜

    【 使えるinputタグのtype属性値 】

    • type="text":文字を入力できるテキストボックス。
    • type="password":パスワード入力用のテキストボックス
    • type="email":メールアドレス入力用のテキストボックス
    • type="tel":電話番号入力用のテキストボックス
    • type="search":検索用のテキストボックス
    • type="number":数値入力用のテキストボックス

    【 使えるタグ(inputタグ以外) 】

    • textareaタグ:複数行の文字を入力できるテキストボックス。
    inputタグとは
    inputタグのイメージ

    inputタグとは入力ができる要素です。
    type属性に指定する値によって、様々な種類の入力要素になります
    formタグに内包して値を別の画面やプログラムに渡したり、JavaScriptと一緒に使ったりします。


    【 inputタグ基本な属性 】

    • type属性:入力要素の種類を指定でき、値はtext/radio/submit/checkboxなどがあります。
    • name属性:入力値を受け渡しするためのキー名です。このinput要素の名前はこれ!と決めます。
    • value属性:入力値を指定できます。入力系要素の初期値や選択肢ごとの値を定義するときに使います。

    【 type属性の値の種類 】

    • text:文字を入力できます。
    • radio:ラジオボタンとなり、複数の選択肢の中から1つ選択させるときに使います。
    • checkbox:チェックボックスとなり、複数選択可能にさせるときに使います。
    • number:数値を入力できます。
    • email:メールアドレスを入力できます。
    • submit:入力内容を送信(submit)する用のボタンです。

    ※他にもたくさんの種類があります。

    【 コード例 】

    ブラウザで実行するとこんな感じです。

    実際に操作してみてください!


    【inputタグに関する記事】

    リンク先のトップ画像
    textareaタグとは

    textareaタグは複数行のテキストを入力できるテキストボックスです。

    【textareaタグに関する記事】

    リンク先のトップ画像

    【 ::placeholderの書き方 】

    セレクタ::placeholder {
        スタイル...
    }

    〜 例 〜
    .placeholder-test::placeholder {
        color: blue;
    }

    【 コード例 】

    【 HTML 】
    【 CSS 】

    ブラウザで実行するとこんな感じです。

    CSS
    擬似要素
    ::marker|リストのマーカー部分("・"や数字など)にスタイル適用

    擬似要素markerは、リストのマーカー部分("・"や数字など)にスタイル適用できます。

    markerで適用できるCSSプロパティには制限があります

    【 ::markerが効くプロパティ代表例 】

    • 文字色:color
    • フォント関係:font,font-family,font-size,font-style,font-variant,font-weight
    • テキスト装飾系:text-combine-upright,text-transform,white-space
    • その他:unicode-bidi,direction
    リストのマーカー部分とは

    リストのマーカー部分とは、liタグの文字の先頭に自動でつく記号です。

    デフォルトでは、ulタグのリストは"・"、olタグのリストは数字がつきます。

    〜例〜

    ul・ol・liタグとは
    • ulタグ:順序のないリストを意味し、liタグを内包します。
    • olタグ:順序ありリストを意味し、liタグを内包します。
    • liタグ:リストの項目に使うタグです。

    【 ::markerの書き方 】

    セレクタ::marker {
        スタイル...
    }

    〜 例 〜
    .marker-test::marker {
        color: blue;
    }

    【 コード例 】

    【 HTML 】
    【 CSS 】

    ブラウザで実行するとこんな感じです。

    CSS
    擬似要素
    ::backdrop|dialogタグや全画面要素に表示される背景部分

    擬似要素backdropは、dialogタグや全画面要素に表示される背景部分に適用できます。

    backdropが有効となるタイミングは限られており、以下の2つの場合です。

    【 ::backdropが有効となる条件 】

    • dialogタグをJSメソッド"showModal()"で開いたとき
    • 要素をJSメソッド"requestFullscreen()"で開いたとき

    また、backdropで適用できるCSSプロパティには制限があります

    【 ::backdropが効くプロパティ代表例 】

    • 背景関係:background,background-color,background-image
    • フィルター関係:backdrop-filter, filter
    • 透明度:opacity
    • サイズ・配置:width,height,position,inset,z-indexなど
    dialogタグとは

    dialogタグはモーダル(ポップアップ)を実装できるHTMLタグです。

    dialogタグは初期表示では非表示の状態です。

    【 dialogを表示させる方法 】

    • JavaScriptのメソッド"showModal()"を実行する(メソッド"close()"で閉じる)
    • open属性を追記し、"<dialog open>"とする

    【 背景関係プロパティの記事 】

    リンク先のトップ画像
    リンク先のトップ画像

    【 ::backdropの書き方 】

    セレクタ::backdrop {
        スタイル...
    }

    〜 例 〜
    .backdrop-test::backdrop {
        background-color: blue;
    }

    【 コード例 】

    【 HTML 】
    【 CSS 】

    ブラウザで実行するとこんな感じです。

    実際に操作してみてください!

    CSS
    擬似要素
    ::file-selector-button|inputタグのtype="file"のボタン部分にスタイル適用

    擬似要素file-selector-buttonは、inputタグのtype="file"のボタン部分にスタイル適用できます。

    inputタグとは
    inputタグのイメージ

    inputタグとは入力ができる要素です。
    type属性に指定する値によって、様々な種類の入力要素になります
    formタグに内包して値を別の画面やプログラムに渡したり、JavaScriptと一緒に使ったりします。


    【 inputタグ基本な属性 】

    • type属性:入力要素の種類を指定でき、値はtext/radio/submit/checkboxなどがあります。
    • name属性:入力値を受け渡しするためのキー名です。このinput要素の名前はこれ!と決めます。
    • value属性:入力値を指定できます。入力系要素の初期値や選択肢ごとの値を定義するときに使います。

    【 type属性の値の種類 】

    • text:文字を入力できます。
    • radio:ラジオボタンとなり、複数の選択肢の中から1つ選択させるときに使います。
    • checkbox:チェックボックスとなり、複数選択可能にさせるときに使います。
    • number:数値を入力できます。
    • email:メールアドレスを入力できます。
    • submit:入力内容を送信(submit)する用のボタンです。

    ※他にもたくさんの種類があります。

    【 コード例 】

    ブラウザで実行するとこんな感じです。

    実際に操作してみてください!


    【inputタグに関する記事】

    リンク先のトップ画像
    inputタグのtype=file

    inputタグのtype属性に"file"を設定すると、PDFやPNG、JPGなどファイルアップロード用の入力要素となります。

    【 HTML 】

    ブラウザ実行結果

    【 type="file"に関する記事 】

    リンク先のトップ画像

    【 ::file-selector-buttonの書き方 】

    セレクタ::file-selector-button {
        スタイル...
    }

    〜 例 〜
    .file-button-test::file-selector-button {
        background-color: white;
        color: blue;
        border: 1px solid orange;
    }

    【 コード例 】

    【 HTML 】
    【 CSS 】

    ブラウザで実行するとこんな感じです。

    CSS
    擬似要素
    ::spelling-error|スペルミス部分にスタイル適用(ブラウザ依存)

    擬似要素spelling-errorは、スペルミス部分にスタイル適用できます。

    スタイル適用の対象はtextareaタグやinputタグのtype=textの入力値です。

    【 ::spelling-errorが効くプロパティ代表例 】

    • color:文字色
    • text-decoration:下線や波線など、文字に装飾ができる
    • background-color:背景色(対応ブラウザが少ない)
    inputタグとは
    inputタグのイメージ

    inputタグとは入力ができる要素です。
    type属性に指定する値によって、様々な種類の入力要素になります
    formタグに内包して値を別の画面やプログラムに渡したり、JavaScriptと一緒に使ったりします。


    【 inputタグ基本な属性 】

    • type属性:入力要素の種類を指定でき、値はtext/radio/submit/checkboxなどがあります。
    • name属性:入力値を受け渡しするためのキー名です。このinput要素の名前はこれ!と決めます。
    • value属性:入力値を指定できます。入力系要素の初期値や選択肢ごとの値を定義するときに使います。

    【 type属性の値の種類 】

    • text:文字を入力できます。
    • radio:ラジオボタンとなり、複数の選択肢の中から1つ選択させるときに使います。
    • checkbox:チェックボックスとなり、複数選択可能にさせるときに使います。
    • number:数値を入力できます。
    • email:メールアドレスを入力できます。
    • submit:入力内容を送信(submit)する用のボタンです。

    ※他にもたくさんの種類があります。

    【 コード例 】

    ブラウザで実行するとこんな感じです。

    実際に操作してみてください!


    【inputタグに関する記事】

    リンク先のトップ画像
    textareaタグとは

    textareaタグは複数行のテキストを入力できるテキストボックスです。

    【textareaタグに関する記事】

    リンク先のトップ画像

    【 ::spelling-errorの書き方 】

    ::spelling-error {
        スタイル...
    }

    〜 例 〜
    ::spelling-error {
        color: blue;
        text-decoration: underline wavy green;
    }

    【 コード例 】

    【 HTML 】
    【 CSS 】

    ブラウザで実行するとこんな感じです。

    実際に操作してみてください!

    ※ブラウザの種類、操作など様々な要因により、反映されない場合がございます。

    まとめ

    • CSSの擬似要素は、特定の要素を追加して、スタイルを反映できる仕組み
    • CSS
      擬似要素
      before:要素内の先頭にコンテンツ(内容)を挿入できる。
    • CSS
      擬似要素
      after:要素内の末尾にコンテンツ(内容)を挿入できる。
    • CSS
      擬似要素
      first-line:ブロック要素内の最初の1行にスタイル適用できる。
    • CSS
      擬似要素
      first-letter:ブロック要素内の最初の1文字にスタイル適用できる。
    • CSS
      擬似要素
      selection:ユーザーが選択したテキスト部分にスタイル適用できる。
    • CSS
      擬似要素
      placeholder:プレースホルダーのテキストにスタイル適用できる。
    • CSS
      擬似要素
      marker:リストのマーカー部分("・"や数字など)にスタイル適用できる。
    • CSS
      擬似要素
      backdrop:dialogタグや全画面要素に表示される背景部分に適用できる。
    • CSS
      擬似要素
      file-selector-button:inputタグのtype="file"のボタン部分にスタイル適用できる。
    • CSS
      擬似要素
      spelling-error:スペルミス部分にスタイル適用できる。
    【 2025/07/05 16:06 更新 】