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
IE矩阵Matrix滤镜旋转与缩放及如何结合transform
Nov 29 HTML / CSS
CSS3 滤镜 webkit-filter详细介绍及使用方法
Dec 27 HTML / CSS
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
Apr 24 HTML / CSS
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
Feb 27 HTML / CSS
利用纯CSS3实现动态的自行车特效源码
Jan 20 HTML / CSS
CSS3实现菜单悬停效果
Nov 17 HTML / CSS
HTML5 canvas实现移动端上传头像拖拽裁剪效果
Mar 14 HTML / CSS
html5视频常用API接口的实战示例
Mar 20 HTML / CSS
uniapp+Html5端实现PC端适配
Jul 15 HTML / CSS
HTML5 SEO优化的一些建议
Aug 27 HTML / CSS
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
May 25 HTML / CSS
CSS变量实现主题切换的方法
Jun 23 #HTML / CSS
CSS3实现列表无限滚动/轮播效果
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
CSS中Single Div 绘图技巧的实现
CSS几步实现赛博朋克2077风格视觉效果
教你做个可爱的css滑动导航条
You might like
PHP备份数据库生成SQL文件并下载的函数代码
2012/02/05 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
jquery ui resize 中border-box的bug修正
2015/04/26 Javascript
JavaScript的jQuery库中ready方法的学习教程
2015/08/14 Javascript
jquery的幻灯片图片切换效果代码分享
2015/09/07 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
AngularJS中controller控制器继承的使用方法
2017/11/03 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
2017/12/22 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
Vue开发实现吸顶效果的示例代码
2018/08/21 Javascript
微信小程序整个页面的自动适应布局的实现
2020/07/12 Javascript
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
Python中实现常量(Const)功能
2015/01/28 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
Python实现简单的HttpServer服务器示例
2017/09/25 Python
Python迭代器与生成器基本用法分析
2018/07/26 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
配置python的编程环境之Anaconda + VSCode的教程
2020/03/29 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
HTML5中的Article和Section元素认识及使用
2013/03/22 HTML / CSS
高中毕业生个人自我鉴定
2013/11/24 职场文书
学校门卫工作职责
2013/12/07 职场文书
《钱学森》听课反思
2014/03/01 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
2014年国庆节寄语
2014/09/19 职场文书
房贷工资证明范本
2015/06/12 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书