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 border-radius属性详解
Jul 05 HTML / CSS
CSS3实现的炫酷菜单代码分享
Mar 12 HTML / CSS
CSS3实现超酷的黑猫警长首页
Apr 26 HTML / CSS
CSS3 3D旋转rotate效果实例介绍
May 03 HTML / CSS
CSS3制作3D立方体loading特效
Nov 09 HTML / CSS
IE9下html5初试小刀
Sep 21 HTML / CSS
Bootstrap 学习分享
Nov 12 HTML / CSS
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
Jan 31 HTML / CSS
如何在Canvas上的图形/图像绑定事件监听的实现
Sep 16 HTML / CSS
CSS3实现指纹特效代码
Mar 17 HTML / CSS
css3 选择器
May 11 HTML / CSS
CSS变量实现主题切换的方法
Jun 23 #HTML / CSS
CSS3实现列表无限滚动/轮播效果
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
CSS中Single Div 绘图技巧的实现
CSS几步实现赛博朋克2077风格视觉效果
教你做个可爱的css滑动导航条
You might like
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
PHP中foreach循环中使用引用要注意的地方
2011/01/02 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
php插入排序法实现数组排序实例
2015/02/16 PHP
关于php 高并发解决的一点思路
2017/04/16 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
创建一个复制UBB软件信息的链接或按钮的js代码
2008/01/06 Javascript
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
javascript父、子页面交互技巧总结
2014/08/08 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
Bootstrap精简教程
2015/11/27 Javascript
js实现仿微博滚动显示信息的效果
2015/12/21 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
JS实现可针对算术表达式求值的计算器功能示例
2018/09/04 Javascript
VUE Elemen-ui之穿梭框使用方法详解
2021/01/19 Javascript
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
Python排序算法实例代码
2017/08/10 Python
Python反转序列的方法实例分析
2018/03/21 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
2019/04/16 Python
在django中使用apscheduler 执行计划任务的实现方法
2020/02/11 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
python统计字符串中字母出现次数代码实例
2020/03/02 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
selenium如何定位span元素的实现
2021/01/13 Python
HTML5中的websocket实现直播功能
2018/05/21 HTML / CSS
小学生期末评语
2014/04/21 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
2014年班级工作总结
2014/11/14 职场文书