关于什么是计数器?

779 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

计数器

什么是计数器

CSS 中的计数器本质上来说就是由 CSS 维护的变量,计数器的值可以通过 CSS 规则递增来跟踪计数器的使用次数,例如可以使用计数器来自动为网页中的标题编号。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>计数器</title>
    <style>
        ul {
            list-style: none;
            padding: 0;
            margin: 0;
            counter-reset: aa;
        }
        ul li{
            counter-increment: aa;
        }
        ul li::before{
            content: counter(aa)".";
        }
        ol {
            list-style: none;
            /* padding: 0; */
            margin: 0;
            counter-reset: AA;
        }
        ol li{
            counter-increment: AA;
        }
        ol li::before{
            content: counters(AA,".")" ";
        }
    </style>
</head>
<body>
    <ul>
        <li>小米</li>
        <li>华为</li>
        <li>魅族</li>
    </ul>
    <ol>
        <li>小米手机
          <ol>
            <li>小米
              <ol>
                <li>小米10</li>
                <li>小米10 pro</li>
                <li>小米 9</li>
              </ol>
            </li>
            <li>红米
              <ol>
                <li>红米 note</li>
                <li>红米 note pro</li>
                <li>红米 K30</li>
              </ol>
            </li>
            <li>mi</li>
          </ol>
        </li>
        <li>华为</li>
        <li>魅族</li>
      </ol>
</body>
</html>

如上述示例所示,操作计数器的值是通过如下 2 个属性实现:

  • counter-reset 属性
  • counter-increment 属性

在 HTML 页面中显示计数器是通过如下 2 个函数实现:

  • counter() 函数
  • counters() 函数

counter-reset 属性

CSS counter-reset 属性用来将计数器重置为给定的值。该属性的默认值为 none。

  • 要重置为计数器的名称。该名称可以是字母(A-Z,a-z)、十进制数字(0-9)、连接符(-)、下划线(_)以及转义字符。
  • 要在元素每次出现时将计数器重置为的值。如果没有指定,默认值为 0。
  • none:不执行计数器复位。

计数器的个数不一定是一个,也可以是多个。如果 counter-reset 属性的值是多个计数器的话,则计数器之间使用空格分隔。

h1 {
  counter-reset: chapter section 1 page;
}
  • 将 chapter 和 page 两个计数器复位为 0。
  • 将 section 计数器复位为 1。

counter-increment 属性

CSS counter-increment 属性用来设置计数器每次增加的值。该属性的默认值为 none。

  • 要增加为计数器的名称。该名称可以是字母(A-Z,a-z)、十进制数字(0-9)、连接符(-)、下划线(_)以及转义字符。
  • 要在元素每次出现时将计数器增加为的值。如果没有指定,默认值为 1。
  • none:任何计数器都不能递增。

如果 counter-increment 属性设置多个计数器的递增值的话,计数器之间使用空格进行分隔。

h1 {
  counter-increment: chapter section 2 page;
}
  • 将 chapter 和 page 两个计数器递增为 1。
  • 将 section 计数器递增为 2

counter() 函数

CSS counter() 函数用来简单地将计数器的内容显示在 HTML 页面中。counter() 函数返回一个字符串,该字符串表示指定的计数器的当前值。

conter(custom-ident, counter-style)
  • custom-ident 参数:表示计数器的名称。
  • counter-style 参数:表示显示的样式。

counter() 函数经常与 ::before::after 伪元素选择器配合使用。

counters() 函数

CSS counters() 函数支持计数器的嵌套情况。counters() 函数返回一个字符串,该字符串表示指定的计数器的当前值。

conter(custom-ident, string, counter-style)
  • custom-ident 参数:表示计数器的名称。
  • string 参数:表示计数器嵌套的分隔符,可以是任意数量的文本字符。
  • counter-style 参数:表示显示的样式。