CSSには、要素の前後にコンテンツを挿入するための便利な擬似要素があります。それが::before
と::after
です。このブログでは、これらの擬似要素の使い方と、その活用例について詳しく解説します。
::before
と::after
の基本
::before
と::after
は、指定した要素の前後にコンテンツを追加するための擬似要素です。これらを使うと、HTMLを変更せずに視覚的な装飾を加えることができます。
CSS
.element::before {
content: "Before";
}
.element::after {
content: "After";
}
上記のCSSは、<div class="element"></div>
の前に「Before」という文字列を、後ろに「After」という文字列を追加します。
使用方法の例
見出しに画像を追加する方法
CSS
h2 {
position: relative;
}
h2:before {
content: "";
width: 110px;
height: 110px;
background: url(画像URL) no-repeat 0 0;
background-size: 100%;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
}
このコードは、h2
タグの前に画像を追加する方法を示しています。具体的には、以下のような手順で行われます:
h2
タグに対してposition: relative;
を設定します。これにより、h2
タグを基準にして位置を調整することができます。h2:before
で、疑似要素を作成し、content: "";
で内容を空にします。- 画像のURLを指定し、
background
プロパティで画像を背景として設定します。 background-size: 100%;
で画像を要素のサイズに合わせて調整します。position: absolute;
で、画像の位置を絶対位置に設定し、left: 0;
で左端に配置します。top: 50%;
で縦方向の中央に配置し、transform: translateY(-50%);
で要素の高さの半分だけ上に移動させて、完全に中央に配置します。
見出しに線を追加する方法
CSS
h2:before {
content: "";
position: absolute;
bottom: 0px;
width: 40px;
background: #ccc;
height: 2px;
left: 0;
right: 0;
margin: auto;
}
こちらのコードは、h2
タグの下部に線を追加する方法を示しています。以下の手順で行います:
h2:before
で、疑似要素を作成し、content: "";
で内容を空にします。position: absolute;
で、線の位置を絶対位置に設定し、bottom: 0px;
でh2
タグの下端に配置します。width: 40px;
で線の幅を40ピクセルに設定します。background: #ccc;
で線の色を指定します。height: 2px;
で線の高さを2ピクセルに設定します。left: 0; right: 0;
で線を水平方向に中央に配置し、margin: auto;
で中央揃えにします。
注意点
content
プロパティを使用する必要があります。content
プロパティが設定されていない場合、::before
と::after
は何も表示しません。- これらの擬似要素は、ブロックレベルおよびインライン要素に対して使用できますが、適切な表示を得るためにはスタイルの調整が必要です。
まとめ
CSSの::before
と::after
擬似要素を使うと、HTMLを変更せずに視覚的な装飾を追加することができます。これらを活用することで、より豊かで洗練されたデザインを実現することができます。