【CSS】擬似要素 ::before でボタンの前にNEW!の文字を表示する方法

本日も実際のクライアントワークからのご紹介です。
それはとあるボタンの先頭に “NEW!” の文字をつけたいというご依頼。
画像を作って配置したり、fontawesomeのようなサービスを使ったり方法は色々ありますが、
今回はCSSのみで表示する方法をご紹介します。
使用するのは擬似要素の
::before
です。
解説
擬似要素はベースとなる要素を装飾するためのスタイルです。
今回の例では a という要素に before という擬似要素を付加しました。なので、a::before
となっています。
beforeは文字の通り、要素の前にスタイルを付加するもので、::after
を使用すると、要素の後ろ側に表示されます。
次の例では、beforeをabsoluteで配置するのでbeforeでもafterでも結果は同じになります。
それでは少し装飾してみましょう。
.btns a::before {
content: "NEW!"
}
.btn-2 a,
.btn-3 a {
padding: 10px 20px 10px 12px;
border-radius: 8px;
background: #afd4d2
}
.btn-2 a::before {
background: #000;
font-size: 11px;
color: #fff;
border-radius: 5px;
padding: 3px 5px;
margin-right: 10px
}
.btn-3 a {
position: relative;
display: inline-block;
text-align: center;
margin-left: 10px;
padding-left: 40px
}
.btn-3 a::before {
position: absolute;
top: -10px;
left: -10px;
color: #fff;
background: #bd0000;
font-size: 10px;
width: 40px;
height: 40px;
line-height: 40px;
border-radius: 50%;
text-align: center
}
擬似要素を使えば簡単に装飾できるので、色々試してみましょう。