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 相关文章推荐
移动Web—CSS为Retina屏幕替换更高质量的图片
Dec 24 HTML / CSS
html5+css3气泡组件的实现
Nov 21 HTML / CSS
CSS3制作Dropdown下拉菜单的方法
Jul 18 HTML / CSS
用CSS3的box-reflect来制作倒影效果
Nov 15 HTML / CSS
html5调用摄像头功能的实现代码
May 07 HTML / CSS
HTML5 与 XHTML2
Oct 17 HTML / CSS
input file上传文件样式支持html5的浏览器解决方案
Nov 14 HTML / CSS
使用HTML5的Notification API制作web通知的教程
May 08 HTML / CSS
HTML5 history新特性pushState、replaceState及两者的区别
Dec 26 HTML / CSS
html5+css3进度条倒计时动画特效代码【推荐】
Mar 08 HTML / CSS
详解淘宝H5 sign加密算法
Aug 25 HTML / CSS
CSS 实现多彩、智能的阴影效果
May 12 HTML / CSS
CSS变量实现主题切换的方法
Jun 23 #HTML / CSS
CSS3实现列表无限滚动/轮播效果
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
CSS中Single Div 绘图技巧的实现
CSS几步实现赛博朋克2077风格视觉效果
教你做个可爱的css滑动导航条
You might like
PHP 将图片按创建时间进行分类存储的实现代码
2010/01/05 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
jQuery在页面加载时动态修改图片尺寸的方法
2015/03/20 Javascript
Move.js入门
2017/02/08 Javascript
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
简述jQuery Easyui一些用法
2017/08/01 jQuery
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
微信小程序自定义toast弹窗效果的实现代码
2018/11/15 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
[02:56]DOTA2亚洲邀请赛 VG出场战队巡礼
2015/02/07 DOTA
python调用cmd命令行制作刷博器
2014/01/13 Python
python中正则表达式的使用详解
2014/10/17 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
Python列表对象实现原理详解
2019/07/01 Python
python爬虫爬取笔趣网小说网站过程图解
2019/11/18 Python
Python tkinter常用操作代码实例
2020/01/03 Python
html5是什么_动力节点Java学院整理
2017/07/07 HTML / CSS
伦敦高级内衣品牌:Agent Provocateur(大内密探)
2016/08/23 全球购物
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
《小猪家的桃花树》教学反思
2014/04/11 职场文书
创新社会管理心得体会
2014/09/12 职场文书
党员群众路线自我剖析材料
2014/10/06 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
个人业务学习心得体会
2016/01/25 职场文书
导游词之珠海轮廓
2019/10/25 职场文书
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
2021/04/13 HTML / CSS
Java内存模型之happens-before概念详解
2021/06/13 Java/Android