CSS 计数器

奔驰

保时捷

玛莎拉蒂

CSS 计数器是由 CSS 保持的“变量”,其值可以通过 CSS 规则递增(以跟踪其使用次数)。

计数器使您可以根据内容在文档中的位置来调整其外观。


带计数器的自动编号

CSS 计数器就像“变量”。变量值可以通过 CSS 规则递增(将跟踪它们的使用次数)。如需使用 CSS 计数器,我们将使用以下属性:

  • counter-reset - 创建或重置计数器
  • counter-increment - 递增计数器值
  • content - 插入生成的内容
  • counter()counters() 函数 - 将计数器的值添加到元素

如需使用 CSS 计数器,必须首先使用 counter-reset 创建它。

下面的例子为页面(在 body 选择器中)创建一个计数器,然后为每个 <h2> 元素增加计数器值,并在每个 <h2> 元素的开头添加 "Section <value of the counter>:":

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. body {
  6. counter-reset: section;
  7. }
  8. h2::before {
  9. counter-increment: section;
  10. content: "Section " counter(section) ": ";
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <h1>使用 CSS 计数器:</h1>
  16. <h2>HTML 教程</h2>
  17. <h2>CSS 教程</h2>
  18. <h2>JavaScript 教程</h2>
  19. </body>
  20. </html>

嵌套计数器

下面的例子为页面(section)创建一个计数器,为每个 <h1> 元素(subsection)创建一个计数器。"section" 计数器为每个 <h1> 元素计数,同时写入 "Section" 以及 section 计数器的值,"subsection" 计数器为每个 <h2> 元素计数,同时写入 section 计数器的值以及 subsection 计数器的值:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. body {
  6. counter-reset: section;
  7. }
  8. h1 {
  9. counter-reset: subsection;
  10. }
  11. h1::before {
  12. counter-increment: section;
  13. content: "Section " counter(section) ". ";
  14. }
  15. h2::before {
  16. counter-increment: subsection;
  17. content: counter(section) "." counter(subsection) " ";
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <h1>HTML 教程:</h1>
  23. <h2>HTML 教程</h2>
  24. <h2>CSS 教程</h2>
  25. <h1>Scripting 教程:</h1>
  26. <h2>JavaScript</h2>
  27. <h2>VBScript</h2>
  28. <h1>XML 教程:</h1>
  29. <h2>XML</h2>
  30. <h2>XSL</h2>
  31. </body>
  32. </html>

计数器对于创建概述列表也很有用,因为在子元素中会自动创建一个计数器的新实例。在这里,我们使用 counters() 函数在不同级别的嵌套计数器之间插入一个字符串:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. ol {
  6. counter-reset: section;
  7. list-style-type: none;
  8. }
  9. li::before {
  10. counter-increment: section;
  11. content: counters(section,".") " ";
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <ol>
  17. <li>item</li>
  18. <li>item
  19. <ol>
  20. <li>item</li>
  21. <li>item</li>
  22. <li>item
  23. <ol>
  24. <li>item</li>
  25. <li>item</li>
  26. <li>item</li>
  27. </ol>
  28. </li>
  29. <li>item</li>
  30. </ol>
  31. </li>
  32. <li>item</li>
  33. <li>item</li>
  34. </ol>
  35. <ol>
  36. <li>item</li>
  37. <li>item</li>
  38. </ol>
  39. </body>
  40. </html>

CSS 计数器属性

属性描述
content与 ::before 和 ::after 伪元素一同使用,来插入生成的内容。
counter-increment递增一个或多个计数器值。
counter-reset创建或重置一个或多个计数器。