20:40contentプロパティは、:before疑似要素または:after疑似要素と併せて使うことで、要素の前後に内容を生成します。カウンタを生成して自動的に連番を振ったり、quotesプロパティと併せて使う事で指定した文字列の引用符を挿入したりする事もできます。各値は、空白類文字で区切って何回でも組み合わせることができます。normalCSS2.1では内容を生成しませんが、CSS3では変わってくる可能性があるようです。none内容を生成しません。<文字列>指定された文字列を生成します。この際テキストは引用符で囲む必要があります。文字列に、引用符を使う場合は、\"のようにエスケープする必要がある。改行を含むことができないため、改行する場合にも\Aとエスケープ文字を使う必要があります。pre-line;などの宣言も追加しておかないと改行されないことがあります。テキストに全角文字が含まれる場合、@charsetルールで文字コードの指定をしておきます。他に、生成内容の改行目的ではなくソースの見た目上改行したい場合は、改行自体をバックスラッシュでエスケープする必要があります。<URI>指定したURIにある、画像などの外部リソースを生成します。この際、指定した外部リソースが取得できない場合は、指定されていなかったかのように無視されます。<カウンタ>カウンタを生成します。要素に自動的に連番を振ったりすることができます。<カウンタ>には、counter()とcounters()の2つの関数があり、どちらも2つの書式が有ります。<list-style-type>)となっています。識別子と文字列は任意の文字で、<list-style-type>の初期値はdecimalになります。このカウンタをコントロールするには、counter-incrementプロパティとcounter-resetプロパティで指定します。open-quotequotesプロパティで指定された文字列を引用符の開始部に挿入します。入れ子の深さに応じて指定した引用符が挿入されます。close-quotequotesプロパティで指定された文字列を引用符の終了部に挿入します。入れ子の深さに応じて指定した引用符が挿入されます。no-open-quote引用符を挿入せずにquotesプロパティで指定されている引用符の入れ子の深さを一段階深くします。no-close-quote引用符を挿入せずにquotesプロパティで指定されている引用符の入れ子の深さを一段階浅くします。attr(X)そのセレクタの主体となる要素に指定された属性「X」の値を文字列として挿入します。印刷用のCSSにattr(href)と指定すると、プリント時にURLが出ます。主体となる要素が指定された属性を持たない場合は、空の文字列が挿入されます。改行自体のエスケープ生成される内容の改行目的ではなく、ソースの見た目上の目的で改行したい場合以下のように改行自体をエスケープします。pre-line;}このサンプルを今見ているブラウザで表示すると以下のようになります。ぜろ最初のサンプルのような装飾目的で「■」を生成すれば無駄なテキストが減らせますし、数が多い場合などは装飾を変更する手間が省けたりします。2番目のような画像の場合は背景目的で使う方が良いかもしれません。backgroundプロパティ使えばって話にもなるので、何ともですけど。3番目は、URLを表示した例ですが、これを印刷用CSSで使うと印刷時にURLが表示され便利だったりします。";}値に<カウンタ>を指定して、見出しに連番を振っています。h5要素は、h4要素の番号が入り-に続いてh5要素の番号が入ります。section;によってh5要素の番号をリセットしてします。";などにある、chapterやsectionは、識別子で扱える文字なら何でも構いません。このサンプルを今見ているブラウザで表示すると以下のようになります。