【CSSセレクタ】E:after
『セレクタ:after』で、要素の最後の子要素を生成でき、こちらは一般に『:after擬似要素』と呼ばれます。IE7以下のブラウザでは動きません。
『:after擬似要素』を生成する場合は、『content』プロパティの指定が必須となり、『content』プロパティに指定がない場合は『:after擬似要素』の生成はされません。何も文字列を含まない『:after擬似要素』を生成したい場合は『content』プロパティの値に空文字列を渡してあげればOKです。
サンプルコード
style.css
/* テキストを末尾に追加 */
div:after { content: "Hello World";}
/* contentが指定されていないと生成されない(要注意) */
p:after {}
/* 空文字列で装飾用の擬似要素を生成 */
div.div1:after { content: ""; display: block; height: 10px; background-color: red;}
/* クリアフィックス(floatの回り込み解除)の実践例 */
.clearfix:after {
content: "";
display: block;
clear: both;
}
/* 見出しの後ろに装飾線を追加する実践例 */
h2.decorated:after {
content: "";
display: block;
width: 40px;
height: 3px;
background-color: #0077cc;
margin-top: 8px;
}
/* リストアイテムの末尾に「▶」を追加する */
li.arrow:after { content: " ▶";}
/* 必須項目に「*」を追加する */
label.required:after { content: " *"; color: red;}
ブラウザでの表示結果
div:after { content: "Hello World";} /* Hello Worldという文字列を含んだ『:after擬似要素』を生成します。 */
p:after {} /* 『content』プロパティが指定されていないので『:after擬似要素』は生成されません。 */
div.div1:after { content: ""; display: block; height: 10px; background-color: red;} /* 何も文字列を出力しない場合はこのように空文字列を渡してあげてください。 */
<div> 『:after擬似要素』が生成されてます。</div> <p>『content』プロパティの指定がないため『:after擬似要素』が生成されていません。</p> <div class="div1">『:after擬似要素』で赤いラインを生成しています。</div>
『:after擬似要素』のデフォルトの『display』プロパティの値は『inline』となります。
尚、『:after擬似要素』が生成される場所は指定された要素の後ではなく、指定された要素の中の最後の子要素の位置となりますのでご注意ください。
<p> <!-- この辺に『:after擬似要素』が生成されます。 --> </p> <!-- ここではありません -->
対応ブラウザ
デスクトップ
3 以前 ×
8 △
7 ×
6 ×
6 △
5 △
4 △↑ 『:after』として対応
3 以前 ×モバイル
2 以前 ×
Android Browser
4.4 以降 ○
3 以前 ×デスクトップ版と同等の対応です
デスクトップ版と同等の対応です
※ バージョン情報は MDN に基づいています。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。