contentプロパティを調べてみる
この記事は2015年2月25日に書かれたもので、内容が古い可能性がありますのでご注意ください。
::before疑似要素や::after疑似要素で使用するcontentプロパティ。
あまり深く調べたことが無いので調べてみました。
※疑似要素はIE8から対応していますが疑似要素の書き方は【:before】【:after】となります。
contentプロパティ関連の一覧です。
引用符に必要なquotesプロパティも含めています。
| プロパティ名 | 指定値 | 説明 |
| content | “文字列” | 指定した文字列を追加する |
| url(URI) | 指定したURIの画像等を追加する | |
| counter(カウンタ名) | counter-incrementで指定したカウンタ名を入れる | |
| counters(カウンタ名, "文字列", list-style-type) | 入れ子になった時に、カウンタを指定された文字列で区切った値で返す。list-style-typeは省略可 | |
| attr(属性名) | 指定した属性の値を表示する | |
| open-quote | quotesプロパティで設定されている開始引用符を挿入する | |
| close-quote | quotesプロパティで設定されている終了引用符を挿入する | |
| no-open-quote | 引用符の入れ子の深さが一階深くなる | |
| no-close-quote | 引用符の入れ子の深さが一階層浅くなる | |
| counter-increment | カウンタ名 整数値 | contentプロパティで追加された連番の値を進める。また整数値は半角スペースで区切って整数値を指定すると、カウンタの値がその数だけ前後し省略が可能 |
| counter-reset | カウンタ名 | contentプロパティで追加された連番の値を初期化する |
| quotes | “文字列” “文字列” | 開始引用符と終了引用符の文字列をペアで指定 |
まずは基本となるcontentの”文字列”から。
比較的多い米マークをリストの前に配置するサンプルです。
<ul class="type1"> <li>テキストテキストテキストテキスト</li> <li>テキストテキストテキストテキスト</li> </ul>
ul.type1 {
list-style-type: none;
}
ul.type1 li::before {
content: "※";
}
続いてURLのサンプル。サイズなど調整するのが面倒なので使用頻度は少なそう。
同じ画像を出すならcontentを空にしてdisplayとbackground-imageで出すほうが融通がきいていいような気がします。
<p class="type2">テキストテキストテキストテキスト</p>
p.type2::before {
content: url(http://placehold.jp/14x14.png);
}
次はcounter(カウンタ名)です。
米マークの後に連番を表示させるサンプルです。
因みに入れ子にしているのには次のサンプルに理由があります。
<ol class="type3"> <li>テキストテキストテキストテキスト</li> <li>テキストテキストテキストテキスト <ol class="type3"> <li>テキストテキストテキストテキスト</li> <li>テキストテキストテキストテキスト</li> </ol> </li> <li>テキストテキストテキストテキスト</li> </ol>
ol.type3 {
list-style-type: none;
}
ol.type3 li {
counter-increment: type3;
}
ol.type3 li::before {
content: "※" counter(type3);
}
上記では入れ子にしても数字が進みますが、counter-resetを使う数字をリセットすることが可能です。
<ol class="type4"> <li>テキストテキストテキストテキスト</li> <li>テキストテキストテキストテキスト <ol class="type4"> <li>テキストテキストテキストテキスト</li> <li>テキストテキストテキストテキスト</li> </ol> </li> <li>テキストテキストテキストテキスト</li> </ol>
ol.type4 {
counter-reset: type4;
list-style-type: none;
}
ol.type4 li {
counter-increment: type4;
}
ol.type4 li::before {
content: "※" counter(type4);
}
counter-incrementに整数値【2】を入れると【2】【4】【6】・・と2ずつ増えます。
因みに整数値なので負の値も可能です。
<ol class="type5"> <li>テキストテキストテキストテキスト</li> <li>テキストテキストテキストテキスト</li> <li>テキストテキストテキストテキスト</li> <li>テキストテキストテキストテキスト</li> </ol>
ol.type5 {
list-style-type: none;
}
ol.type5 li {
counter-increment: type5 2;
}
ol.type5 li:before {
content: "※" counter(type5);
}
続いてcounters(カウンタ名, “文字列”, list-style-type)。
約款などで使用できそうなサンプルです。
<ol class="type6"> <li>テキストテキストテキストテキスト</li> <li>テキストテキストテキストテキスト <ol class="type6"> <li>テキストテキストテキストテキスト</li> <li>テキストテキストテキストテキスト <ol class="type6"> <li>テキストテキストテキストテキスト</li> </ol> </li> <li>テキストテキストテキストテキスト</li> </ol> </li> <li>テキストテキストテキストテキスト</li> </ol>
ol.type6 {
counter-reset: type6;
list-style-type: none;
}
ol.type6 li {
counter-increment: type6;
}
ol.type6 li::before {
content: counters(type6, " - ", lower-alpha);
}
attr(属性名)です。サンプルはhrefですがtitleやaltなども可能です。
下記のサンプルは印刷用cssでURLを表示させると印刷時のユーザビリティ的によいのかもしれません。
<ul> <li><a href="https://www.google.co.jp/" class="type7">グーグル</a></li> <li><a href="http://www.yahoo.co.jp/" class="type7">ヤフー</a></li> </ul>
a.type7::after {
content: attr(href);
}
ここからは中々想定する使い方は思いつかないのですが、open-quoteとclose-quoteです。
quotesは開始と終了をセットで指定します。サンプルのように複数も可能です。
<p>テキスト<q class="type8">テキスト<q class="type8">テキスト</q>テキスト</q>テキスト</p>
q.type8 {
quotes: '「' '」' '『' '』';
}
q.type8::before {
content: open-quote;
}
q.type8::after {
content: close-quote;
}
no-open-quoteとno-close-quoteです。
サンプルはno-open-quoteになります。
<p>テキスト<q class="type9">テキスト<q class="type9">テキスト</q>テキスト</q>テキスト</p>
q.type9 {
quotes: '「' '」' '『' '』';
}
q.type9::before {
content: no-open-quote;
}
q.type9::after {
content: close-quote;
}
ads
