【CSS】疑似要素::beforeや::afterを使って吹き出しを作ろう
2020.09.03 Posted by Coding_team
【CSS】疑似要素について知ろうの記事で、疑似要素::beforeや::afterは、要素の直前・直後に疑似的に要素を追加することができるとご紹介しました。
この::beforeや::afterをうまく使えば、ワンランク上のデザインを作成することができます。
今回は、吹き出しを作成してみましょう。
吹き出しの作り方
SAMPLE
吹き出しをつくりました。
吹き出しは、疑似要素を使えばHTMLはpタグだけで作成することができます。
1 |
<p class="fukidashi">吹き出しをつくりました。</p> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
.fukidashi { position: relative; background: #f9efd7; padding: 20px 40px; display: inline-block; border-radius: 10px; margin-right: 10px; /*吹き出しのしっぽの部分の余白を空けておく*/ } .fukidashi::before { /*疑似要素にをブロック要素にする*/ display: block; content: ''; /*positionの指定*/ position: absolute; right: -10px; /*親要素で余白を設けた箇所に配置*/ top: 0; bottom: 0; margin: auto 0; /*上下中央位置に*/ /*三角形を作るCSS*/ width: 0; height: 0; border-style: solid; border-width: 10px 0 10px 10px; border-color: transparent transparent transparent #f9efd7; } |
pタグのスタイルのポイント
- 疑似要素のpositionはabsoluteで配置するので、pタグをrelativeにしておく。
- 吹き出しのしっぽ(三角形)を配置するための余白を空けておく。
- display:inline-blockだと吹き出しの横幅は可変になります。
display:block;にしてwidthプロパティで幅を指定すると、幅固定の吹き出しを作成することができます。
疑似要素のスタイルのポイント
- 疑似要素はdisplay:block;でブロック要素にしておく。
content: ”;で空文字を指定しておかなければ表示されないので注意 - position:absolute;で場所を指定する。
topとbottomを0にし、margin: auto 0;にすることで上下中央位置に表示されます。
rightの値はpタグで開けた分の余白をマイナスで設定しておきましょう。
三角形を作るためのCSSは、自動生成できるツールを公開しているサイトなどを参考にすると、時短で作成することができます。
まとめ
今回、しっぽの部分は::beforeで作成しましたが、疑似要素はabsoluteで自由に配置できるため、::afterでも同様に作成可能です。
疑似要素を使えば、シンプルなHTMLのまま幅広いデザインを適用することができます。
ぜひ試してみてください。
関連記事こちらの記事も合わせてどうぞ。