疑似要素(pseudo-element)は、HTML要素の特定の部分に対してスタイルを適用するために使用されます。
参考 HTMLの要素とは?
例えば、
などの疑似要素を利用することで以下のように「HTMLを直接修正する必要なく」指定した要素の前後にテキストやアイコンを挿入することができます。::before
や::after
See the Pen 疑似要素① by ビズドットオンライン (@biz-online) on CodePen.
このページでは、HTML/CSS初心者向けに疑似要素とは何か?をわかりやすく1から解説します。
Webエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識の1つです。是非最後までご覧ください。
疑似要素とは?
疑似要素(pseudo-element)は、CSSセレクタで使用される擬似クラス(pseudo-class)の一種で、HTML要素の特定の部分に対してスタイルを適用するために使用されます。
参考 疑似クラスとは?
See the Pen 疑似要素① by ビズドットオンライン (@biz-online) on CodePen.
詳しく説明すると、以下の sample クラスに対して
<div class="sample">Hello, world!</div>
疑似要素「
」が利用されることで、”Hello, world!” という文字列の前後にテキストコンテンツが追加される仕組み。::before
」「::after
.sample::before { content: 'Before '; color: red; } .sample::after { content: ' After'; color: blue; }
このように、ある特定の要素の部分を指し示すのが疑似要素のポイントです。
参考 divタグ
ここまでの説明だけではまだよくわからない・・・!という方も他の疑似要素を見ていくことで徐々にイメージが湧くはずです。
ここからは実際に利用される代表的な疑似要素と、そのサンプルコードを解説します。
代表的な疑似要素
以下がよく利用される代表的な疑似要素です。利用頻度としては::before
や::after
が圧倒的ですが、その他の疑似要素についても知っておくと便利です。
疑似要素 | 説明 |
---|---|
::before | 要素の開始タグの前にコンテンツを挿入するために使用される。 |
::after | 要素の終了タグの後にコンテンツを挿入するために使用される。 |
::first-letter | ブロックレベル要素の最初の文字にスタイルを適用するために使用される。 |
::first-line | 要素の最初の行にスタイルを適用するために使用される。 |
::selection | テキストが選択されたときにスタイルを適用するために使用される。 |
::placeholder | フォームの入力欄にプレースホルダーテキストを表示するために使用される。 |
::marker | リストのマーカー(箇条書きの数字や記号など)にスタイルを適用するために使用される。 |
::backdrop | dialog 要素などの背景にスタイルを適用するために使用される。::backdrop はbody 要素よりも上位の階層に配置される。 |
実際に上記の疑似要素を利用したサンプルコードがこちらです。
サンプルコード
See the Pen 疑似要素② by ビズドットオンライン (@biz-online) on CodePen.
このサンプルコードでは、各疑似要素を使って以下のようなスタイルを適用しています。
::before
: テキストの前にアイコンを表示する。::after
: ボタンの後ろに矢印を表示する。::first-letter
: テキストの最初の文字に赤い大きなフォントを適用する。::first-line
: テキストの最初の行に太字のスタイルを適用する。::selection
: テキストが選択されたときに、背景色を黄色に変更する。::placeholder
: フォームの入力欄にプレースホルダーテキストをグレーの斜体で表示する。::marker
: リストのマーカー(リストの数字や記号)に青く太字のスタイルを適用する。::backdrop
:dialog
要素の背景を半透明の黒に設定する。
これらの疑似要素を使うことで、HTML要素の特定の部分にスタイルを適用できます。疑似要素は、WebサイトやWebアプリケーションのデザインに役立つ強力なツールです。
Webエンジニア向け→完全無料のHTML/CSS/JS ロードマップ
Webエンジニアを目指す方にとって避けては通れないベースとなる超・重要知識の1つがHTML/CSS/JavaScriptです。
以下のページでは、そもそもHTMLって何?何のために学習するの?という疑問に回答しつつ、HTML/CSS/JavaScriptを学習するためのロードマップ(全50記事)を整理しています。
Webエンジニアを目指す方に、完全無料でかつ短時間で理解できるようにまとめましたので是非ご覧ください。