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 相关文章推荐
修复iPhone的safari浏览器上submit按钮圆角bug
Dec 24 HTML / CSS
8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)
Feb 04 HTML / CSS
CSS3弹性盒模型flex box快速入门心得(必看篇)
May 24 HTML / CSS
前端canvas动画如何转成mp4视频的方法
Jun 17 HTML / CSS
html5 application cache遇到的严重问题
Dec 26 HTML / CSS
html5各种页面切换效果和模态对话框用法总结
Dec 15 HTML / CSS
html5使用canvas绘制太阳系效果
Dec 15 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
May 11 HTML / CSS
HTML5中Localstorage的使用教程
Jul 09 HTML / CSS
HTML5中indexedDB 数据库的使用实例
May 11 HTML / CSS
用canvas画心电图的示例代码
Sep 10 HTML / CSS
一个基于canvas的移动端图片编辑器的实现
Oct 28 HTML / CSS
CSS变量实现主题切换的方法
Jun 23 #HTML / CSS
CSS3实现列表无限滚动/轮播效果
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
CSS中Single Div 绘图技巧的实现
CSS几步实现赛博朋克2077风格视觉效果
教你做个可爱的css滑动导航条
You might like
ThinkPHP中使用ajax接收json数据的方法
2014/12/18 PHP
php生成验证码函数
2015/10/20 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
JavaScript的目的分析
2007/01/05 Javascript
JavaScript中String.prototype用法实例
2015/05/20 Javascript
jquery彩色投票进度条简单实例演示
2020/07/23 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
JS实现无缝循环marquee滚动效果
2017/05/22 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
vue+egg+jwt实现登录验证的示例代码
2019/05/18 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
jQuery-App输入框实现实时搜索
2020/11/19 jQuery
跟老齐学Python之集合(set)
2014/09/24 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
python,Java,JavaScript实现indexOf
2020/09/09 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
python编程的核心知识点总结
2021/02/08 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
极简的HTML5模版
2015/07/09 HTML / CSS
法国家具及室内配件店:home24
2017/01/21 全球购物
微软马来西亚官方网站:Microsoft马来西亚
2019/11/22 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
医学生自我鉴定范文
2013/11/08 职场文书
年终考核评语
2014/01/19 职场文书
吃空饷专项治理工作实施方案
2014/03/04 职场文书
工程承包协议书
2014/04/22 职场文书
细节决定成败演讲稿
2014/05/12 职场文书
挂牌仪式策划方案
2014/05/18 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
高中同学会致辞
2015/08/01 职场文书
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python