CSS には、before/after/first-letter/first-line の 4 つの主要な擬似要素があります。before/after 擬似要素セレクターには、ページにコンテンツを挿入できる content 属性があります。
プレーンテキストを挿入します
content: "記事を挿入"、または content:none はコンテンツを挿入しません
#html <h1>这是h1</h1> <h2>这是h2</h2> #css h1::after{ content:"h1后插入内容" } h2::after{ content:none }
テキスト記号を埋め込む
content 属性の open-quote 属性値と close-quote 属性値を使用できます文字列の両側に角括弧、一重引用符、二重引用符などの入れ子になったテキスト記号を追加します。 open-quote は開始テキスト シンボルを追加するために使用され、close-quote は終了テキスト シンボルを追加するために使用されます。上記のCSSを変更します:
h1{ quotes:"(" ")"; /*利用元素的quotes属性指定文字符号*/ } h1::before{ content:open-quote; } h1::after{ content:close-quote; } h2{ quotes:"\"" "\""; /*添加双引号要转义*/ } h2::before{ content:open-quote; } h2::after{ content:close-quote; }
画像を挿入
content属性は要素の前後に直接画像を挿入することもできます
#html <h3>这是h3</h3> #css h3::after{ content:url(图片路径) }
要素の属性値を挿入します
content属性はattrを直接使用して要素の属性を取得し、対応する場所に挿入します。
#html <a href="//m.sbmmt.com">这是链接</a> #css a:after{ content:attr(href); }
プロジェクト番号を挿入
コンテンツのカウンター属性を使用して、複数のプロジェクトに連続した番号を追加します。
#html <h1>大标题</h1> <p>文字</p> <h1>大标题</h1> <p>文字</p> <h1>大标题</h1> <p>文字</p> <h1>大标题</h1> <p>文字</p> #css h1:before{ content:counter(my)'.'; } h1{ counter-increment:my; }
項目番号の変更
デフォルトで挿入されるプロジェクト番号は数値、1、2、3です。 。 。自動増分。プロジェクト番号にテキストとスタイルを追加することもできます。引き続き、上記の HTML、CSS 変更を次のように使用します:
h1:before{ content:'第'counter(my)'章'; color:red; font-size:42px; } h1{ counter-increment:my; }
数値タイプを指定します
コンテンツ (カウンター名、数値タイプ) 形式の構文を使用して、数値タイプ、数値タイプ 参照は、ul の list-style-type 属性値に基づくことができます。上記の HTML を使用して、CSS を次のように変更します。
h1:before{ content:counter(my,upper-alpha); color:red; font-size:42px; } h1{ counter-increment:my; }
数値のネスト
大きな数値は中程度の数値の中にネストされ、中程度の数値は小さな数値の中にネストされます。
#html <h1>大标题</h1> <p>文字1</p> <p>文字2</p> <p>文字3</p> <h1>大标题</h1> <p>文字1</p> <p>文字2</p> <p>文字3</p> <h1>大标题</h1> <p>文字1</p> <p>文字2</p> <p>文字3</p> #css h1::before{ content:counter(h)'.'; } h1{ counter-increment:h; } p::before{ content:counter(p)'.'; margin-left:40px; } p{ counter-increment:p; }
この例の出力では、p の数値が連続していることがわかります。各 h1 の後に 3 つの p の番号を付け直す場合、counter-reset 属性を使用して、上記の h1 の CSS をリセットおよび変更できます。
h1{ counter-increment:h; counter-reset:p; }
また、3 レベルのネストなど、より複雑なネストを実現することもできます。
#html <h1>大标题</h1> <h2>中标题</h2> <h3>小标题</h3> <h3>小标题</h3> <h2>中标题</h2> <h3>小标题</h3> <h3>小标题</h3> <h1>大标题</h1> <h2>中标题</h2> <h3>小标题</h3> <h3>小标题</h3> <h2>中标题</h2> <h3>小标题</h3> <h3>小标题</h3> #css h1::before{ content:counter(h1)'.'; } h1{ counter-increment:h1; counter-reset:h2; } h2::before{ content:counter(h1) '-' counter(h2); } h2{ counter-increment:h2; counter-reset:h3; margin-left:40px; } h3::before{ content:counter(h1) '-' counter(h2) '-' counter(h3); } h3{ counter-increment:h3; margin-left:80px; }
完全なデモは以下にあります
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>CSS content</title> <style> .string p:after { margin-left: -16px; background: #fff; content: "支持"; color: #f00; } .attr p:after { content: attr(title); } .url p:before { content: url(https://img.php.cn/upload/article/000/000/009/587d87ecca52d563.jpg); display: block; } .test ol { margin: 16px 0; padding: 0; list-style: none; } .counter1 li { counter-increment: testname; } .counter1 li:before { content: counter(testname)":"; color: #f00; font-family: georgia,serif,sans-serif; } .counter2 li { counter-increment: testname2; } .counter2 li:before { content: counter(testname2,lower-roman)":"; color: #f00; font-family: georgia,serif,sans-serif; } .counter3 ol ol { margin: 0 0 0 28px; } .counter3 li { padding: 2px 0; counter-increment: testname3; } .counter3 li:before { content: counter(testname3,float)":"; color: #f00; font-family: georgia,serif,sans-serif; } .counter3 li li { counter-increment: testname4; } .counter3 li li:before { content: counter(testname3,decimal)"."counter(testname4,decimal)":"; } .counter3 li li li { counter-increment: testname5; } .counter3 li li li:before { content: counter(testname3,decimal)"."counter(testname4,decimal)"."counter(testname5,decimal)":"; } </style> </head> <body> <ul> <li> <strong>string:</strong> <p>你的浏览器是否支持content属性:否</p> </li> <li> <strong>attr:</strong> <p title="如果你看到我则说明你目前使用的浏览器支持content属性"></p> </li> <li> <strong>url():</strong> <p>如果你看到图片则说明你目前使用的浏览器支持content属性</p> </li> <li> <strong>counter(name):</strong> <ol> <li>列表项</li> <li>列表项</li> <li>列表项</li> </ol> </li> <li> <strong>counter(name,list-style-type):</strong> <ol> <li>列表项</li> <li>列表项</li> <li>列表项</li> </ol> </li> <li> <strong>counter(name)拓展应用:</strong> <ol> <li>列表项 <ol> <li>列表项 <ol> <li>列表项</li> <li>列表项</li> </ol> </li> <li>列表项</li> </ol> </li> <li>列表项 <ol> <li>列表项</li> <li>列表项</li> </ol> </li> <li>列表项 <ol> <li>列表项</li> <li>列表项</li> </ol> </li> </ol> </li> </ul> </body> </html>