最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
HTML怎么做CSS计数器_html CSS counter计数器使用方法教程
时间:2026-07-21 11:14:42 编辑:袖梨 来源:一聚教程网
纯CSS自动编号需三步:先用counter-reset在父容器初始化计数器,再用counter-increment在目标元素上递增,最后通过::before伪元素的content配合counter()或counters()显示编号;漏写counter-reset或作用域错误是h2无编号主因。
纯 CSS 实现自动编号,不需要 JS、不依赖 <ol>,关键就三步:先用 counter-reset 定义计数器,再用 counter-increment 控制它在哪加,最后靠 content + counter() 或 counters() 把数字塞进页面里。顺序错了就显示不出来。
为什么 h2::before 没显示编号?
最常见原因是漏了 counter-reset 初始化,或者写在了错误的作用域里。
-
counter-reset必须写在**父级容器**上(比如body、article、section),不能只写在h2自己的样式里 - 如果
h2被包裹在多个div里,而这些div的display: none或visibility: hidden,计数器会跳过它们——counter-increment在display: none元素上完全不生效 -
counter-increment和content必须在同一选择器或其伪元素中使用;不能把counter-increment写在h2,又把content写在h2::before外面
counter() 和 counters() 怎么选?
counter(name) 只取当前层级的值;counters(name, ".") 会拼出嵌套路径,比如 1.2.3。别混用。
- 单层编号(如所有
h2从 1 开始)→ 用counter(section) - 章节嵌套(
h1是 1、2、3;h2是 1.1、1.2、2.1)→h1用counter-reset: subsection,h2::before里用counters(section, ".") -
counters()第二个参数是分隔符,必须是字符串字面量,比如"."、"–",不能是变量或 CSS 变量 - 第三个参数(如
lower-roman)只在部分浏览器支持,实际项目中建议只用默认阿拉伯数字
counter-reset 和 counter-increment 的数值怎么设?
它们都支持可选整数参数,默认是 0 和 1,但很多人不知道可以调成负数或跳号。
立即学习“前端免费学习笔记(深入)”;
-
counter-reset: section -1→ 下一个counter-increment: section会显示0,适合想让编号从 0 开始的场景 -
counter-increment: section 2→ 每次匹配该元素,计数器加 2,可用于隔行编号或跳过某些项 - 多个计数器可同时操作:
counter-reset: a 5 b表示重置a到 5、b到 0;counter-increment: a b 3表示a加 1、b加 3 - 注意:如果同一元素既
counter-reset又counter-increment同一计数器,重置优先,再递增
真正容易被忽略的是作用域继承规则:计数器不是全局变量,它按 DOM 树向下传递,但会被新 counter-reset 截断。比如在 h1 里写 counter-reset: section,那它内部所有子元素看到的都是这个新起点,和外部 body 里的 section 无关。嵌套深了,得一层层检查重置点是否合理。
相关文章
- 苹果折叠屏爆料汇总:售价超两万,比例阔折叠 07-30
- 纪念碑谷3 纪念碑谷3手游玩法详解与体验评测 07-30
- 晴空双子金卡阵容推荐 晴空双子高性价比氪金养成指南 07-30
- 大周列国志全新派系系统 07-30
- 兔小萌世界甜系小房间搭建指南 兔小萌世界高颜值甜系房间布置全流程详解 07-30
- 大周列国志全新剧本包西汉剧本包 07-30