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实现字体颜色渐变的实现
Mar 09 HTML / CSS
css3实现波纹特效、H5实现动态波浪效果
Jan 31 HTML / CSS
利用HTML5+CSS3实现3D转换效果实例详解
May 02 HTML / CSS
CSS实现雨滴动画效果的实例代码
Oct 08 HTML / CSS
html5中为audio标签增加停止按钮动作实现方法
Jan 04 HTML / CSS
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
May 07 HTML / CSS
用HTML5实现鼠标滚轮事件放大缩小图片的功能
Jun 25 HTML / CSS
Html5实现用户注册自动校验功能实例代码
May 24 HTML / CSS
使用canvas来完成线性渐变和径向渐变的功能的方法示例
Jul 25 HTML / CSS
canvas如何实现多张图片编辑的图片编辑器
Mar 10 HTML / CSS
div与span之间的区别与使用介绍
Dec 06 HTML / CSS
MIME类型中application/xml与text/xml的区别介绍
Jan 18 HTML / CSS
CSS变量实现主题切换的方法
Jun 23 #HTML / CSS
CSS3实现列表无限滚动/轮播效果
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
CSS中Single Div 绘图技巧的实现
CSS几步实现赛博朋克2077风格视觉效果
教你做个可爱的css滑动导航条
You might like
PHP初学者头疼问题总结
2006/07/08 PHP
PHP新手上路(六)
2006/10/09 PHP
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
详解Window7 下开发php扩展
2015/12/31 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
情人节之礼 js项链效果
2012/02/13 Javascript
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
2013/02/02 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
Angularjs实现搜索关键字高亮显示效果
2017/01/17 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
PyQt5打开文件对话框QFileDialog实例代码
2018/02/07 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
Python 使用指定的网卡发送HTTP请求的实例
2019/08/21 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
Django实现随机图形验证码的示例
2020/10/15 Python
10个示例带你掌握python中的元组
2020/11/23 Python
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
英国最大的香水商店:The Fragrance Shop
2018/07/06 全球购物
老兵退伍感言
2015/08/03 职场文书