疑似要素で表示した画像サイズの調整が上手くできない!といった悩みを持つコーダーに向けて、CSS疑似要素で表示した画像のサイズを調整する方法について解説します。
コンテンツ
疑似要素で表示した画像のサイズ調整が難しい
contentにimgを指定した場合
画像サイズを調節しなくても良い場合や、ちゃちゃっと画像を表示したい場合はcontent
に画像パスを指定する方法で問題なしです。
しかし画像のサイズ調整をしたい場合、transform
のscale
を使用するしかなく、サイズの変更がやや不便です。
疑似要素で表示した画像のサイズ調整を行う方法
疑似要素の背景画像として表示する
background
プロパティを使用して背景画像として表示すれば、width
とheight
で画像サイズを調節できます。
コード
::before { content: ''; display: inline-block; width: 20px; height: 20px; background-image: url(../images/icon.png); background-size: contain; }
コードの解説
contentの指定
背景画像として画像を表示するため、content
プロパティの値は空にします。
displayの指定
疑似要素のdisplay
プロパティの初期値はinline
であるため、inline-block
を指定します。
そうすることで、width
とheight
を使ったサイズ調整が可能になります。
background-sizeの指定
background-size
にはcontain
を指定します。
contain
を指定することで、指定したサイズの中に背景画像全体がすっぽり入ります。
疑似要素の背景画像として表示した方が良い場面
テキストの前後に画像などを挿入する
例えば、使用頻度の高い「アイコン」+「テキスト」のセット。
この場合はアイコンを背景画像として表示すると、アイコンのサイズ調節が便利です。
また画像のサイズをem
で指定しておくと、レスポンシブ対応の際にテキストのfont-size
が変更されても、バランスを崩すことなく表示することができます。
まとめ
疑似要素を使って画像を表示する際は、背景画像として表示してあげるとレスポンシブ対応もすごく楽になります。
この機会に使いこなせるようにしましょう!