CSS-计数器 counter-reset、counter-increment、counter-reset

计数器

CSS的计数器通过在 content 上应用 counter() 或 counters()函数来显示计数的。其中计数器是由counter-reset和counter-increment 来进行操作的。

counter-increment

语法

  • counter-increment
  • 参数1:计算器名称 该标识符由不区分大小写的字母 a 到 z,数字 0 到 9,下划线(_)和/或短划线( - )的组合组成。第一个非破折号字符必须是一个字母(即,在它的开头没有数字,即使前面有破折号。)此外,在标识符的开头禁止使用两个破折号。在任何案例组合中都不能是 none,unset,initial 或 inherit。
  • 参数2:计数器的值。如果没有给出,默认为 1

普通版本

css 复制代码
    .one {
      /* 用于重置计数器的初始值,这里将计数器命名为 "oneCounter"  */
      counter-reset: oneCounter;

      /* 值 初始化是1, 不写的话,默认值是 0 */
      /* counter-reset: oneCounter 1; */
    }
    .one p::before {
      counter-increment: oneCounter 1;
      /* counter */
      content: counter(oneCounter) " 段 "
    }
html 复制代码
  <div class="one">
    <p>北国风光</p>
    <p>千里冰封</p>
    <p>万里雪飘</p>
    <p>望长城内外</p>
    <p>惟余莽莽</p>
    <p>大河上下</p>
    <p>顿失滔滔</p>
  </div>

如果 counter-increment: oneCounter 2; 这样写,就是,第一行是初始化的值 + 2,下面的行,依次 + 2

如果 counter-reset: oneCounter 10; counter-increment: oneCounter 2;

多个计数器呢?

属于同一个父级元素,才会累计,不是一个父元素不会冲突

html 复制代码
  <style>
    .one {
      /* 用于重置计数器的初始值,这里将计数器命名为 "oneCounter"  */
      counter-reset: oneCounter twoCounter 30;

      /* 值 初始化是1, 不写的话,默认值是 0 */
      /* counter-reset: oneCounter 1; */

    }

    .one p::before {
      counter-increment: oneCounter 2;
      /* counter */
      content: counter(oneCounter) " 段 "
    }

    .two p::before {
      counter-increment: twoCounter 10;
      /* counter */
      content: counter(twoCounter) " 段 "
    }
  </style>
</head>

<body>

  <div class="one">
    <p>北国风光</p>
    <p>千里冰封</p>
    <p>万里雪飘</p>
    <p>望长城内外</p>
    <p>惟余莽莽</p>
    <p>大河上下</p>
    <p>顿失滔滔</p>
  </div>
  <br>
  <div class="two">
    <p>北国风光</p>
    <p>千里冰封</p>
    <p>万里雪飘</p>
    <p>望长城内外</p>
    <p>惟余莽莽</p>
    <p>大河上下</p>
    <p>顿失滔滔</p>
  </div>
</body>

降序

css 复制代码
    .one {
      /* 用于重置计数器的初始值,这里将计数器命名为 "oneCounter"  */
      counter-reset: oneCounter-reversed -2 twoCounter 30;

      /* 值 初始化是1, 不写的话,默认值是 0 */
      /* counter-reset: oneCounter 1; */

    }

    .one p::before {
      counter-increment: oneCounter-reversed -2;
      /* counter */
      content: counter(oneCounter-reversed) " 段 "
    }
相关推荐
世界哪有真情2 小时前
拿人类意识卡 AI?等于用 bug 验收正式产品
前端·人工智能·后端
Listen·Rain3 小时前
Vue3:setup详解
前端·javascript·vue.js
Patrick_Wilson4 小时前
修好 bug 只是开始:一次由监控需求反向重构日志结构的复盘
前端·监控·数据可视化
kyriewen4 小时前
面试官让我优化一个卡死的表格,我打开 Claude 五秒重写,他放下咖啡问我要不要来当组长
前端·javascript·面试
‘’林花谢了春红‘’5 小时前
小玩意 生日快乐
css·html·css3
小粉粉hhh5 小时前
React(二)——dom、组件间通信、useEffect
前端·javascript·react.js
Csvn5 小时前
🤖 AI 生成前端代码的 5 个典型翻车现场及修复指南
前端
IT_陈寒6 小时前
SpringBoot自动装配坑了我一天,原来问题出在这
前端·人工智能·后端
索西引擎7 小时前
【React】key 属性:协调算法中的元素标识机制与最佳实践
前端·javascript·react.js
只会cv的前端攻城狮7 小时前
动态组件架构设计:从配置到事件驱动全链路解析
前端·vue.js