カテゴリ: CSS 更新日: 2025/12/25

CSSの擬似要素::beforeと::afterを徹底解説!初心者でも使える具体例つき

擬似要素 ::before と ::after の使い方と具体例
擬似要素 ::before と ::after の使い方と具体例

先生と生徒の会話形式で理解しよう

生徒

「CSSで文字の前や後ろにマークや記号を自動で入れたりする方法ってありますか?」

先生

「はい、CSSの擬似要素::before::afterを使えば、簡単に装飾ができますよ。」

生徒

「擬似要素ってなんですか?難しそうです…」

先生

「大丈夫です。実際に使ってみると、とても簡単で便利ですよ。さっそく見ていきましょう!」

1. 擬似要素::beforeと::afterとは?

1. 擬似要素::beforeと::afterとは?
1. 擬似要素::beforeと::afterとは?

CSSの擬似要素(ぎじようそ)とは、HTMLのタグそのものには書かれていないけれど、見た目だけに追加できる「見えない要素」のことです。

::before(ビフォア)と::after(アフター)は、ある要素の「前」や「後ろ」に文字や記号を表示させるときに使います。

例えば、見出しの前に★(星)マークをつけたいときや、リンクの後に矢印→をつけたいときに便利です。

2. 擬似要素を使うときの基本ルール

2. 擬似要素を使うときの基本ルール
2. 擬似要素を使うときの基本ルール

擬似要素::before::afterを使うには、必ずcontentというプロパティをCSSに書く必要があります。

このcontentは「表示させたい内容」を指定するところです。文字列を表示したいときは、ダブルクォーテーション(")で囲んで書きます。

3. ::beforeを使ったサンプル

3. ::beforeを使ったサンプル
3. ::beforeを使ったサンプル

次の例では、すべてのh2タグの前に「★」マークを表示します。


<style>
h2::before {
    content: "★ ";
    color: orange;
}
</style>

<h2>おすすめ商品</h2>
ブラウザ表示

4. ::afterを使ったサンプル

4. ::afterを使ったサンプル
4. ::afterを使ったサンプル

次は、リンクのあとに矢印「→」を追加するサンプルです。


<style>
a::after {
    content: " →";
    color: gray;
}
</style>

<a href="#">公式サイトはこちら</a>
ブラウザ表示

5. 擬似要素はどんな時に使える?

5. 擬似要素はどんな時に使える?
5. 擬似要素はどんな時に使える?

擬似要素は、装飾やデザインをCSSだけで調整したいときにとても便利です。たとえば以下のような場面でよく使います。

  • リストの先頭にアイコンをつけたいとき
  • ボックスの前後に飾り線をつけたいとき
  • 強調したいテキストに印をつけたいとき

6. 注意点とよくある間違い

6. 注意点とよくある間違い
6. 注意点とよくある間違い

::beforeや::afterを使うときは、対象の要素が「表示されている」必要があります。display: none;visibility: hidden;が指定されていると、擬似要素も表示されません。

また、contentを書かないと何も表示されません。contentが空だと、ただの何もない空間になります。

HTMLには何も追加せず、CSSだけで見た目を変えることができるのが擬似要素の強みです。

7. 文字以外の使い方も可能

7. 文字以外の使い方も可能
7. 文字以外の使い方も可能

contentには文字だけでなく、アイコンや絵文字、画像を使うこともできます。ただし、画像を使う場合はbackground-imageを使うことが多いです。

例:チェックマークを絵文字で追加する


<style>
li::before {
    content: "✅ ";
}
</style>

<ul>
  <li>りんご</li>
  <li>みかん</li>
</ul>
ブラウザ表示

8. よく使う場面とデザインの幅

8. よく使う場面とデザインの幅
8. よく使う場面とデザインの幅

::beforeと::afterを使えば、ボタンの中に装飾を入れたり、注意書きの枠線を作ったり、Webサイト全体のデザインを整えるときに活用できます。

CSSでデザインを制御することで、HTMLはシンプルなまま保つことができ、保守性(メンテナンスのしやすさ)も上がります。

装飾のためだけの文字や記号は、HTMLに直接書かず、CSSで追加するようにすると、HTMLの意味がぶれずに済みます。

まとめ

まとめ
まとめ

擬似要素::beforeと::afterで理解できたこと

CSSの擬似要素である::beforeと::afterは、HTMLの構造を変更せずに見た目だけを柔軟に装飾できる非常に重要な仕組みです。今回の記事では、CSSの基本から一歩進んだ装飾方法として、擬似要素を使った文字追加、記号表示、デザイン調整の考え方を学びました。

特に初心者にとって理解しておきたいポイントは、::beforeと::afterは「HTMLに存在しない要素を、CSSだけで見せている」という点です。見出しの前に星マークを付けたり、リンクの後ろに矢印を付けたりする表現は、HTMLに直接書いてしまいがちですが、CSSで制御することで構造と見た目を分離できます。

これはWeb制作においてとても重要な考え方で、HTMLは文章の意味や構造を表し、CSSは見た目やデザインを担当する、という役割分担を守ることにつながります。結果として、修正や管理がしやすくなり、実務でも評価されやすいコードになります。

contentプロパティの役割

::beforeや::afterを使う際に必須となるのがcontentプロパティです。contentに何を書くかで、表示される内容が決まります。文字列だけでなく、記号、絵文字、空文字なども指定でき、装飾の幅が一気に広がります。

また、contentを指定しなければ擬似要素は表示されないという点も重要です。CSSを書いているのに何も表示されない場合、多くはcontentの指定忘れが原因です。このようなよくあるミスを知っておくことで、トラブルシューティングもしやすくなります。

まとめのサンプルプログラム

ここでは、今回学んだ内容を振り返るために、見出しの前後に装飾を加えるサンプルを掲載します。記事内で使ってきたclassやタグ構成と同じ形式で記述しています。


<style>
h2::before {
    content: "◆ ";
    color: #0d6efd;
}
h2::after {
    content: " ◆";
    color: #0d6efd;
}
</style>

<h2>まとめセクション</h2>
ブラウザ表示

このように、CSSの擬似要素を使うことで、HTMLを一切変更せずにデザインを調整できます。Webサイト制作、ブログ作成、ランディングページ、学習用サンプルなど、さまざまな場面で応用できます。

先生と生徒の振り返り会話

生徒

「::beforeと::afterって、最初は難しそうだと思っていましたが、HTMLを書き換えずに装飾できるのがすごく便利だと感じました。」

先生

「そうですね。特にCSSでデザインを管理する考え方は、Web制作ではとても大切です。意味のあるHTMLと、装飾のためのCSSを分けることで、読みやすく修正しやすいコードになります。」

生徒

「contentを書き忘れると表示されない点も、実際に試してみてよく分かりました。よくあるミスも知れて安心です。」

先生

「その気付きはとても大切です。今回学んだ擬似要素は、ボタン装飾やリスト装飾、注意書き表示など、実務でもよく使います。ぜひいろいろな場面で試してみてください。」

生徒

「CSSだけでここまで表現できると分かって、Webデザインが楽しくなってきました。次はもっと複雑な装飾にも挑戦してみたいです。」

先生

「とても良い姿勢ですね。基礎をしっかり理解できているので、応用もきっとスムーズに身につきますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

CSSの擬似要素::beforeと::afterとは何ですか?初心者向けに意味を教えてください。

CSSの擬似要素::beforeと::afterとは、HTMLに直接書かれていない内容を「見た目だけで追加できる」CSSの機能です。特定の要素の前や後ろに記号や文字などを表示することができます。
カテゴリの一覧へ
新着記事
New1
CSS
CSS Gridテンプレート集!よく使うWebレイアウトの作り方
New2
HTML
HTML head要素とは?meta・titleの役割と基本を解説
New3
Bootstrap
Bootstrap固定比率カラム完全ガイド!.col-6・.col-md-4の使い方とベストプラクティスを初心者向けに解説
New4
CSS
CSS Gridとメディアクエリで作る!レスポンシブデザイン完全入門
人気記事
No.1
Java&Spring記事人気No1
HTML
HTMLでできること・できないこと|初心者が迷う点を整理
No.2
Java&Spring記事人気No2
CSS
CSSの入れ子構造セレクタ完全ガイド!初心者でもわかる書き方と使い方
No.3
Java&Spring記事人気No3
CSS
CSS Gridの配置を視覚的にデザイン!grid-template-areasの設計方法
No.4
Java&Spring記事人気No4
CSS
CSSの文字色と背景色の組み合わせで読みやすさアップ!初心者でもわかる可読性の改善方法
No.5
Java&Spring記事人気No5
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.6
Java&Spring記事人気No6
Bootstrap
Bootstrap5グリッドとは?12分割の基本とrow・col・gutterを初心者向けにやさしく解説
No.7
Java&Spring記事人気No7
HTML
HTML html/head/bodyタグの役割|文書構造の基本を整理
No.8
Java&Spring記事人気No8
CSS
CSS Gridレイアウト設計術!固定幅・自動幅・割合幅を組み合わせる方法