CSSのセレクタ「擬似要素 ::after」で「ふきだし」を作ってみた
CSSのfloatを解除するclearfix で「擬似要素 ::after」を使います。
その擬似要素 ::after についてまとめ、::after の特徴を使って「ふきだし」も作ってみました。
スポンサーリンク
擬似要素 ::before と ::after
擬似要素の中の ::before と :afterは、要素の直前(::before)または直後(::after)に「テキスト」や「画像」などを表示します。
必ずcontentプロパティと一緒に使います。contentプロパティで指定したモノを表示するので。
表示できるモノは以下の3つ。
- 「テキスト」を表示する
-
「content: ‘追加するテキスト’ ;」というカタチで使用。テキストは「”」で囲む。
ul::before {content:'2015年4月調査';} - 画像などの「外部メディア」を表示する
-
「content:url(メディアのパス);」というカタチで使用。
img.portfolio::after {content:url(./image/sign.png);} - その要素の特定の「属性値」を表示する
-
「content:attr(属性の名前);」というカタチで使用、この属性の「値」をテキストで書き出す。
ins[title]::after {content: attr(title);}このソースのセレクタ ins[title] は、title属性があるins要素ってこと。要素に[]で属性値を限定する方法。
contentプロパティの値 attr(title) は、title属性の値を書きだす指定。
これで、title属性を持つins要素の直後に title属性の値(2015年4月10日追記 とか)を書き出してくれる。
擬似要素は、CSS2で導入された頃は「:(コロン1つ)」でした。
CSS3からは、擬似クラスとはっきり見分けられるように「::(コロン2つ)」での記述が導入されたそうです。「::after」などと書くようにしたほうが自分もわかりやすいですね。
擬似要素 ::afterで「ふきだし」を作る
擬似要素 ::afterを使って「ふきだし」を作ってみました。
こんなかんじネ
div:afterで、divの直後に小ちゃい三角形を作っている
幅も高さも0のボックスに、top、left、rightにborderを指定すると下向きの三角形になる
それをposition:absoluteで適当な位置に配置しているわけ
ソースはこちら
<div class="fukidashi">こんなかんじネ</div>
.fukidashi {
position:relative;
background:#CFF;
padding:1.5em;
width:15em;
margin-bottom:20px;
border-radius:12px;}
.fukidashi::after {
content:'';
position:absolute;
border-top:10px solid #CFF;
border-right:5px solid transparent;
border-left:5px solid transparent;
bottom:-9px;
left:20px;}
ボーダーで小ちゃい三角形ができる原理については、
ほんっとにはじめての HTML5【13-1】borderと borderのショートハンド
で触れていますので見てみてください。







Leave a Comment