CSS实现章节添加自增序号的方法


Posted in HTML / CSS onJune 23, 2021

开始

当我们想写一个类似掘金的文章或者自己的博客的时候,是否有想过该怎么实现给自己文章的章节添加章节号,给小标题增加标题号,或者给列表增加列序号,简单的静态文本我们或许可以手动输入或者使用html的有序列表 <ol>,但是有序列表自带样式,达到我们想要的效果可能还要费一番功夫,繁多的结构我们是否只能通过js来实现呢?

CSS计数器

css计数器通过几个css的属性值来实现,分别是

  • counter-reset - 创建或者重置计数器
  • counter-increment - 递增变量
  • content - 插入生成的内容
  • counter() 或 counters() 函数 - 将计数器的值添加到元素

所有主流浏览器都支持,大家可以放心使用

counter-reset

使用css计数器的第一步就是创建或者重置计数器,使用counter-reset属性,默认初始值为0,可以额外设置其他初始值

counter-reset: chapter; /* 重置计数器为 0 */
counter-reset: chapter 2; /* 重置计数器为 2 */

counter-increment

counter-increment属性用于将CSS Counters的值增加给定值。参数和counter-reset一致。第一个参数应和创建计数器counter-reset的第一个参数保持一致

h1{
  counter-increment: chapter;
}

countent

为了使用我们刚才创建的计数器,需要使用content,content是before或着after伪类中使用的属性,我们经常使用伪类来做一些修饰

h1::before{
  content: counter(chapter)'. ';
}

最终我们呈现的效果如下

<style>
body{
  counter-reset: chapter;
}
h1::before{
  counter-increment: chapter;
  content: counter(chapter)'. ';
}
</style>
<body>
  <h1>三国演义</h1>
  <h1>红楼梦</h1>
  <h1>水浒传</h1>
  <h1>西游记</h1>
</body>

CSS实现章节添加自增序号的方法

计数器嵌套

css 的计数器还可以在列表中使用,支持嵌套,子元素中会自动创建一个CSS计数器的实例。使用 counters() 函数,在不同级别的嵌套计数器之间可以插入字符串
首先将列表的默认类型设为none不显示,否则会影响效果的显示,嵌套的<li>需要使用相同的计数器名字,然后使用 counters 函数可以访问所有的计数器,并将父级与子级拼接,类似js的join函数。

<style>
  ol {
    counter-reset: section;
    list-style-type: none;
  }
  li:before {
    counter-increment: section; 
    content: counters(section, '.') ' '; 
  }
</style>
<ol>
  <li>西游记</li>
  <li>
    红楼梦
    <ol>
      <li>甄士隐梦幻识通灵 贾雨村风尘怀闺秀</li>
      <li>贾夫人仙逝扬州城 冷子兴演说荣国府</li>
    </ol>
  </li>
</ol>
<ol>
  <li>百年孤独</li>
  <li>老人与海</li>
</ol>

CSS实现章节添加自增序号的方法

最后

这里介绍了用counter-reset 和 counter-increment 操作,用content显示css计数器的方法,虽然不常用,但是确出人意料的好用。希望能够对你有所帮助,谢谢

到此这篇关于CSS实现章节添加自增序号的方法的文章就介绍到这了,更多相关CSS添加自增序号内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
CSS3 选择器 属性选择器介绍
Jan 21 HTML / CSS
css3实现的多级渐变下拉菜单导航效果代码
Aug 31 HTML / CSS
CSS3哪些新特性值得称赞
Mar 02 HTML / CSS
详解CSS3中强大的filter(滤镜)属性
Jun 29 HTML / CSS
利用CSS3的3D效果制作正方体
Mar 10 HTML / CSS
CSS3 实现雷达扫描图的示例代码
Sep 21 HTML / CSS
CSS3制作3D立方体loading特效
Nov 09 HTML / CSS
从一次项目重构说起CSS3自定义变量在项目的使用方法
Mar 01 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
Jun 04 HTML / CSS
html5使用canvas画空心圆与实心圆
Dec 15 HTML / CSS
Html5写一个简单的俄罗斯方块小游戏
Dec 03 HTML / CSS
详解CSS中的特指度和层叠问题
Jul 15 HTML / CSS
CSS变量实现主题切换的方法
Jun 23 #HTML / CSS
CSS3实现列表无限滚动/轮播效果
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
CSS中Single Div 绘图技巧的实现
CSS几步实现赛博朋克2077风格视觉效果
教你做个可爱的css滑动导航条
You might like
无线电波是什么?它是怎样传输的?
2021/03/01 无线电
用PHP写的MySQL数据库用户认证系统代码
2007/03/22 PHP
php中http_build_query 的一个问题
2012/03/25 PHP
php ImageMagick windows下安装教程
2015/01/26 PHP
PHP封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
jQuery实现在列表的首行添加数据
2015/05/19 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
jQuery选择器之层次选择器用法实例分析
2019/02/19 jQuery
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
VSCode 配置uni-app的方法
2020/07/11 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
Python正则表达式经典入门教程
2017/05/22 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
Python高级特性之闭包与装饰器实例详解
2019/11/19 Python
OpenCV python sklearn随机超参数搜索的实现
2020/01/17 Python
详解Python中如何将数据存储为json格式的文件
2020/11/18 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
2020/12/04 Python
大学生活自我评价
2014/04/09 职场文书
党员干部反四风对照检查材料思想汇报
2014/09/14 职场文书
2015年党性分析材料
2014/12/19 职场文书
红色革命电影观后感
2015/06/18 职场文书
初中毕业感言300字
2015/07/31 职场文书
2016幼儿园新学期寄语
2015/12/03 职场文书
一波干货,会议主持词开场白范文
2019/05/06 职场文书
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis