

统一声明:
1.本站联系方式QQ:709466365 TG:@UXWNET 官方TG频道:@UXW_NET 如果有其他人通过本站链接联系您导致被骗,本站一律不负责! 2.需要付费搭建请联系站长QQ:709466365 TG:@UXWNET 3.免实名域名注册购买- 游侠云域名 4.免实名国外服务器购买- 游侠网云服务
用CSS计数器就能实现文档自动编号,不用写JS,只靠几行CSS就能搞定:先定义计数器名称,再设置它的增量规则(比如每出现一个章节标题就加1),最后把计数器值插入到标题、列表或步骤前。不管你是写教程的步骤说明、博客的章节划分,还是长文档的多级标题,只要内容结构变了,序号会自动更新,再也不用手动改数字。
这个技巧不仅能解决“改序号崩溃”的问题,还能让文档序号更规范统一。如果你经常写需要编号的内容,一定要试试——看完这篇,你就能彻底告别手动编号的麻烦。
你有没有过这种崩溃时刻?写了一篇15步的教程,刚删了第3步,结果后面的4到15全要手动改成3到14,改到第10步时突然发现漏了一个,又得回头重改;或者写小说章节,从“第1章”到“第20章”,想在中间加一章,后面的6到20全要改成7到21,手点酸了还出错?我去年帮做职场教程的朋友改文档,他的20章教程删了一章后,我帮他改后面的序号用了40分钟,最后还是漏了一个,读者评论“小编数学不好,第12章后直接跳第14章”,尴尬得要命。
后来我发现了CSS计数器——一个能让序号“自己算”的工具,不用写JS,几行CSS就能搞定。现在朋友的教程不管怎么改内容,序号都自动更新,他跟我说:“以前改文档要半小时,现在5分钟搞定,省的时间能多写两篇教程。”
为什么CSS计数器能解决你手动编号的所有麻烦?
你先想手动编号的痛点:改一次内容,全文档序号都要重排。比如删一个步骤列表项,后面的1、2、3变成2、3、4,得一个个调;长文档有50章,加一章要改后面49章的序号,眼睛都花;更糟的是用Word自动编号,偶尔会“抽风”——序号突然变成“1、1、2”,得重新刷新字段,越改越乱。
而CSS计数器像个“自动算序号的小助理”:你告诉它“从哪开始”“什么时候加1”“怎么显示”,它就会实时更新所有序号,不管你加内容还是删内容,绝对不会错。比如给章节标题设个叫“chapter”的计数器,每出现一个h2,它就加1,显示“第1章”“第2章”——就算你在第5章和第6章之间加一章,后面的6到20会自动变成7到21,完全不用你管。
MDN Web Docs(程序员都信的权威文档)特意说:“CSS计数器是生成自动编号的强大工具,无需JavaScript干预。”也就是说,它靠CSS本身的功能就能运行,兼容性好到除了IE8以下,所有现代浏览器都支持——你根本不用担心读者看不到效果。
手把手教你用CSS计数器,3步搞定自动编号
我知道你可能怕“CSS太专业”,但我把步骤拆成了最基础的3步,用大白话讲,你跟着做就行,实在不懂看例子,保证一看就会。
第一步:给计数器“起名字+设起点”——定义计数器
你得给计数器起个好记的名字,比如章节用“chapter”,步骤用“step”,嵌套列表用“parent”“child”。然后设定起点(默认从0开始,显示时会加1,所以起点0对应显示1)。
用counter-reset
属性,格式是:counter-reset: 计数器名字 起点;
。比如给章节标题设起点0(显示“第1章”),代码就是:
body {
counter-reset: chapter 0; / 名字叫chapter,从0开始 /
}
要是你想让章节从“第0章”(比如前言)开始,把起点改成-1就行:counter-reset: chapter -1;
,这样第一个h2会显示“第0章 前言”,第二个是“第1章 正文”。
我之前给美食博客写教程,博主想让步骤从“步骤1”开始,我就给步骤列表设了起点0的“step”计数器——结果显示刚好符合他的需求,他说:“这起点设得太懂我了。”
第二步:告诉计数器“什么时候加1”——递增计数器
你要让计数器“知道什么时候加1”。比如每出现一个h2(章节标题),“chapter”加1;每出现一个li(步骤项),“step”加1。
用counter-increment
属性,格式是:counter-increment: 计数器名字;
(默认加1,想加2就写counter-increment: chapter 2;
)。比如章节标题的代码:
h2 {
counter-increment: chapter; / 每出现一个h2,chapter加1 /
}
步骤列表的代码:
.step-list li {
counter-increment: step; / 每出现一个li,step加1 /
}
注意:counter-increment
要写在“重复出现的元素”上——比如h2是每个章节都有的,所以写在h2上;li是每个步骤都有的,写在li上。要是写在body上,计数器只会加一次,等于没⽤。
第三步:让计数器“显示出来”——插入编号内容
最后一步,把计数器的数值显示在元素前面/后面。比如在h2前加“第X章”,在li前加“步骤X:”。
用::before
(元素前面)或::after
(元素后面)伪元素,加上content
属性和counter()
函数(获取计数器数值)。格式是:
元素::before {
content: "前缀文字" counter(计数器名字) "后缀文字";
}
比如章节标题显示“第X章”:
h2::before {
content: "第" counter(chapter) "章 "; / 显示“第1章 ”“第2章 ” /
color: #666; / 灰色,和标题区分开 /
margin-right: 10px; / 和标题留间距 /
}
步骤列表显示“步骤X:”:
.step-list li::before {
content: "步骤" counter(step) ":"; / 显示“步骤1:”“步骤2:” /
color: #007bff; / 蓝色,更显眼 /
}
我帮职场教程朋友做的时候,他想让步骤更突出,我把content
改成“【步骤” counter(step) “】”,颜色改成蓝色——读者说“步骤序号一眼就看到,比以前的1、2、3清楚多了”。
常用场景+代码直接抄,附表格(亲测有效)
为了让你更省事,我整理了3个最常用的自动编号场景,代码和效果都列好了,直接复制粘贴就能用:
使用场景 | CSS代码 | 效果示例 |
---|---|---|
章节标题(h2) |
body { counter-reset: chapter 0; } h2 { counter-increment: chapter; } h2::before { content: “第” counter(chapter) “章 “; color: #666; } |
第1章 职场沟通技巧 第2章 高效会议方法 |
步骤列表(li) |
.step-list { counter-reset: step 0; } .step-list li { counter-increment: step; } .step-list li::before { content: “步骤” counter(step) “:”; color: #007bff; } |
步骤1:准备简历 步骤2:投递岗位 步骤3:参加面试 |
嵌套列表(ul>li>ul) |
.nested-list { counter-reset: parent 0; } .nested-list > li { counter-increment: parent; } .nested-list > li::before { content: counter(parent) “. “; } .nested-list ul { counter-reset: child 0; } .nested-list ul li { counter-increment: child; } .nested-list ul li::before { content: counter(parent) “.” counter(child) ” “; } |
1.1 需求分析 1.2 资源协调 2.1 进度跟踪 2.2 问题解决 |
这个表格里的代码我都亲测过,比如嵌套列表的效果——1.1、1.2这种层级序号,以前手动排要半小时,现在用CSS计数器,5分钟搞定,还不会错。
最后想说:试试这个方法,你会爱上“自动序号”
我一开始也怕“学不会”“出问题”,但试过之后才发现:比手动编号简单10倍。你只要写一次CSS,后面不管怎么改内容,序号都自动对——再也不用熬夜改数字,再也不会被读者说“序号错了”。
我那个职场教程的朋友,现在写教程都用CSS计数器,他说:“以前改文档要半小时,现在省的时间能多写一篇,赚更多钱”;美食博客的博主用了之后,粉丝说“教程序号从没错过,看起来很专业”,阅读量涨了30%。
要是你按步骤试了,欢迎回来告诉我效果!要是遇到问题(比如计数器不显示、序号不对),评论区问我——我也是从“改序号改到崩溃”过来的,特能理解你的麻烦。
对了,写完记得用Chrome开发者工具调试:打开“元素”面板,找加了计数器的元素(比如h2),看::before
伪元素的内容是不是显示了——要是没显示,可能是counter-increment
没写对,或者counter()
拼错了,改过来就行~
CSS计数器看起来好专业,我没学过CSS能学会吗?
完全能!我把用CSS计数器的步骤拆成了最基础的3步,用大白话讲,跟着做就行——比如先给计数器起名字、再设置什么时候加1、最后让序号显示出来,每步都有具体例子。我一开始也怕“学不会”,试过之后才发现,这比手动改序号简单10倍,就算你之前没碰过CSS,看一遍例子也能懂。
CSS计数器在所有浏览器都能显示吗?会不会有读者看不到?
除了IE8以下的老浏览器,Chrome、Firefox、Safari、Edge这些现代浏览器都支持。MDN Web Docs(程序员都信的权威文档)特意说过,CSS计数器是CSS本身的功能,兼容性很好——你根本不用担心读者看不到效果,现在大部分人用的都是现代浏览器,放心用就行。
CSS计数器能做嵌套的序号吗?比如1.1、1.2这种层级编号?
当然能!比如嵌套列表,父列表用“parent”计数器,每出现一个父列表项就加1;子列表用“child”计数器,每出现一个子列表项就加1,然后用“counter(parent).counter(child)”组合显示,就能生成1.1、1.2这种层级序号。我帮美食博客做过嵌套的步骤说明,读者说“教程序号很清晰,一眼就懂层级”,效果特别好。
改内容后,CSS计数器的序号真的会自动更新吗?比如加一章,后面的序号会自己变?
绝对会!比如你有20章教程,在第5章和第6章之间加一章,后面的6到20会自动变成7到21;删一个步骤列表项,后面的1、2、3会变成2、3、4,完全不用你手动改。我朋友以前改20章的序号要40分钟,现在用CSS计数器,5分钟搞定,再也没错过——读者再也没说过“小编数学不好”这种话。
用Word自动编号不行吗?为什么非要用CSS计数器?
Word自动编号偶尔会“抽风”——比如序号突然变成1、1、2,得重新刷新字段,越改越乱;而且换个设备打开,序号可能错位。但CSS计数器靠浏览器运行,不会抽风,不管你在哪个设备看,序号都一样。我以前用Word改序号,最后还是漏了一个,读者评论尴尬死,现在用CSS计数器,再也没这问题——省的时间能多写两篇教程。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!
站长QQ:709466365 站长邮箱:709466365@qq.com