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实现鼠标悬停提示气泡效果
Feb 28 HTML / CSS
CSS3+Sprite实现僵尸行走动画特效源码
Jan 27 HTML / CSS
CSS3制作轮播图的一种方法
Nov 11 HTML / CSS
HTML5移动开发图片压缩上传功能
Nov 09 HTML / CSS
详解如何用canvas画一个微笑的表情
Mar 14 HTML / CSS
canvas学习笔记之绘制简单路径
Jan 28 HTML / CSS
HTML5拖放效果的实现代码
Nov 17 HTML / CSS
Html5 页面适配iPhoneX(就是那么简单)
Sep 05 HTML / CSS
Html5页面获取微信公众号的openid的方法
May 12 HTML / CSS
如何查看浏览器对html5的支持情况
Dec 15 HTML / CSS
纯CSS实现hover图片pop-out弹出效果的实例代码
Apr 16 HTML / CSS
CSS布局之浮动(float)和定位(position)属性的区别
Sep 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备份MYSQL数据的多种方法
2014/01/15 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
Javascript中eval函数的使用方法与示例
2007/04/09 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
react native基于FlatList下拉刷新上拉加载实现代码示例
2018/09/30 Javascript
在node环境下parse Smarty模板的使用示例代码
2019/11/15 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
angular *Ngif else用法详解
2020/12/15 Javascript
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
python正则表达式判断字符串是否是全部小写示例
2013/12/25 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
tensorflow 加载部分变量的实例讲解
2018/07/27 Python
在python中使用requests 模拟浏览器发送请求数据的方法
2018/12/26 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
python自定义时钟类、定时任务类
2021/02/22 Python
python实现在一个画布上画多个子图
2020/01/19 Python
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
杭州时比特电子有限公司SQL
2013/08/22 面试题
STP协议的主要用途是什么?为什么要用STP
2012/12/20 面试题
饭店工作计划书
2014/01/10 职场文书
物业招聘计划书
2014/01/10 职场文书
在校硕士自我鉴定
2014/01/23 职场文书
《中华少年》教学反思
2014/02/15 职场文书
奥利奥广告词
2014/03/20 职场文书
个人综合鉴定材料
2014/05/23 职场文书
教师节感恩老师演讲稿
2014/08/28 职场文书
《狼牙山五壮士》教学反思
2016/02/17 职场文书
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android