css counters 的属性

  • counter-reset
  • counter-increment
  • counter() / counters()

依次说明:

1.counter-reset。

明译为计数器重置。形如:counter-reset: level1

其中,level1 只是示例,实际上是可以任意命名的一个名字标识符。

按我的理解,counter-reset 的真实意思是:在目标元素所在的层级中定义一个计数器。

2.counter-increment

明译为计数器累加。形如: counter-increment: level1 1

其中,level1 是通过 counter-reset 定义的计数器名,这里的 1 也可以是任意其他整数,甚至可以是负数。当浏览器渲染页面时,带这个属性的元素每出现一次,当前层级内对应名字的计数器就增加相应的值。如不写,默认是 1。

3.counter() / counters()

前面两个属性定义了计数器和计算规则,不过,这些计数器的计算目前都是在内存中进行的。counter() 和 counters() 就负责把计数器显示出来。这两个计算方法要和伪元素的 content 属性搭配食用。形如:content: counter(level1)。counter 计算符前后可以随意加字符串来对最后的效果做拼接。

*注意:当 couner() 一个没有定义过的计数器时,会显示 1。

优先级:

在元素自身上定义的计数器 > 在元素兄弟元素上定义的计数器 > 在元素父元素上定义的计数器

另外,元素无法访问到其兄弟元素的子元素定义的计数器。


链接:https://juejin.cn/post/6844903503492546568