CSS 列表模型之counter计数器

本文详细介绍了CSS中的counter计数器,包括counter-reset、counter-increment的使用,以及如何通过counter()和counters()展示计数结果。讨论了list-item与counter的关系,以及counter与display:none和marker的交互。文章还提到了浏览器兼容性问题和注意事项。
摘要由CSDN通过智能技术生成

CSS 列表模型之counter计数器

计数器是一种特殊的数字跟踪器,通常用于为CSS列表项自动编号。你可以在项目中通过counter-incrementcounter-setcounter-reset来创建一个计数器,并在counter()/counters()中使用。

在CSS语法中,需要定义一个counter-name作为计数器的唯一标识,这是必不可少的。解析计数器一般有以下几个步骤:

  • 当前计数器从父元素继承而来,遵循父元素的计数规则
  • 通过counter-reset实例化一个新的计数器
  • 通过counter-increment设置计数器的递增值
  • 通过counter-set为计数器设置计数初始值
  • 通过counter()/counters()使用计数器

counter-reset

你可以使用counter-reset实例化元素上的新计数器,作用是给这个新计数器起一个名字并附上初始值。[<counter-name> <integer>]<counter-name>就是计数器名字,<integer>为初始化,初始值默认为0。下面是常用的两个例子:

h1 {
    counter-reset: zhaodao } /* 计数器名称'zhaodao' */
h1 {
    counter-reset: zhaodao 99 } /* 计数器名称'zhaodao', 并附初值99 */

你也可以给初值设置负数或者小数,不过设置小数时,比如2.99,在IE和Firefox中无法识别,会当做0处理;在Chrome下向下取整,当成2处理。你也可以利用它给多个计数器同时命名。

H1 {
    counter-reset: zhaodao -1 zhaodaom 99 }

counter-set用法与counter-reset 一样,这里不做解释,如果你感兴趣,可以移步https://www.w3.org/TR/2020/WD-css-lists-3-20200709 标准文档自行阅读

counter-increment

你可以使用counter-increment为你定义的计数器设置每一次递增的值。计数规则可以简述为:counter-reset唯一,每counter-increment1次,计数值就加1。你可以像下面的例子一样使用它们。

.counter {
    counter-reset: zhaodao 2; counter-increment: zhaodao; }
.counter:before {
    content: counter(zhaodao); }

这里值得细说一下,.counter作用的第一个元素的计数值显示为3,而不是定义的zhaodao初始值2。这是因为counter-increment的原因,在渲染第一个元素的时候,counter-increment就已经再起作用,使得初始值递增1,最后渲染出来的就是3,而不是2。

counter()/counters()

你可以使用最简单的组合使用方式:

counter(zhaodao) /* zhaodao就是counter-reset的名称 */

基础使用语法counter(name, style),其中style在此与list-style-type代表一致,表示一种计数的字符形式。比如你可以像下面一样去使用:

counter(zhaodao, lower-roman); /* 以小写罗马数字格式表示当前计数器zhaodao的值 */

你还可以使用counters()进行级联计数,使用语法counter(name, string),其中string为字符串,必须值,代表计数序号的连接字符串。可以实现类似1-1,1-2的效果,其中的strting-

<style>
  .reset {
     padding-left: 20px; counter-reset
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值