0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CSSの疑似要素 ::before と ::after の使い方まとめ

Posted at

はじめに

今回はCSSの疑似要素である ::before::after の使い方についてまとめます。
「なんとなく使っているけど違いがよく分からない」「実際の場面でどう活用する?」と感じている方の参考になれば幸いです。

疑似要素とは

CSSの疑似要素は、HTMLで直接記述していない部分に対して、スタイルやコンテンツを付加できる便利な機能です。
特に ::before::after は、ある要素の前後に仮想的な要素を生成し、そこにテキストや装飾を加えることができます。

例:

style.css
.selector::before { content: "前"; }
.selector::after  { content: "後"; }
  • ::before … 要素の最初に追加
  • ::after … 要素の最後に追加

使いどころ

::before::after が活躍する場面はとても多いです。例えば …

  • アイコンや記号をテキストの前後に自動で表示したい
  • CSSだけで見出しやボックスに装飾(飾り線・バッジなど)をつけたい
  • HTMLを書き換えずに擬似的なラベルや角丸、バッジなどを追加したい

デザインの幅を広げるのに非常に便利です。

具体的な使用方法

基本的な使い方

まずはcontentプロパティが必須です。

style.css
.title::before {
  content: "★";
  color: gold;
  margin-right: 0.5em;
}
index.html
<h2 class="title">見出し</h2>

→ 表示: ★ 見出し

装飾例

飾り線(アンダーライン

style.css
.underline::after {
  content: "";
  display: block;
  width: 100px;
  height: 3px;
  background: #42a5f5;
  margin-top: 4px;
  border-radius: 2px;
}
index.html
<p class="underline">装飾付きテキスト</p>

image.png

おしゃれなアンダーラインが引かれているのがわかります。

バッジ

style.css
.badge::after {
  content: "NEW";
  background: #f44336;
  color: #fff;
  font-size: 0.7em;
  padding: 2px 6px;
  margin-left: 8px;
  border-radius: 10px;
}
index.html
<span class="badge">アイテム名</span>

image.png

バッジが装飾されていることがわかります。

Tips

  • 疑似要素はインライン要素にもブロック要素にも使える
  • contentは必須(空文字でもOK: content: ""
  • 疑似要素自身にpositionやdisplayなどのスタイルを当てられる
  • アイコンフォントやSVG、絵文字とも組み合わせやすい
  • ::before::afterは1つの要素に1回ずつだけ使える
  • 装飾専用のため、インタラクションや動的なデータには不向き(JavaScriptで書き換えはできない)
  • CSSの疑似要素(::before、::after)は初期状態(デフォルト)ではインライン要素として生成される

最後に

::before::after を使いこなせば、HTMLを汚さずCSSだけで見た目をリッチにできます。
ちょっとしたラベルや装飾もコピペで実現できるので、ぜひ活用してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?