让前端飞web前端技术分享前端

css 计数器counter函数,纯css实现序号递增

2023-09-25  本文已影响0人  阿巳交不起水电费

如下面这种需要累计序号的,因为某些行不一定存在,通常是用js去定义一个变量来记录这个序号。但还有一种纯css实现计数的方法。


image.png

改了下菜鸟教程的例子,可以更好理解这个计数器,代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>菜鸟教程(runoob.com)</title> 
<style>
.box1 {
  counter-reset: xxxx;           /* 重置计数器成0 */
}
.box1 h3:before {
  counter-increment: xxxx;      /* 增加计数器值 */
  content: "计数器" counter(xxxx) ": "; /* 显示计数器 */
}
    
.box2 {
  counter-reset: dddd;           /* 重置计数器成0 */
}
.box2 h3:before {
  counter-increment: dddd;      /* 增加计数器值 */
  content: "测试" counter(dddd) ": "; /* 显示计数器 */
}

/* 注意:这里使用demo2的计数器,可以看到是累计的!!! */
.demo:before{
  counter-increment: dddd;      /* 增加计数器值 */
  content: "测试" counter(dddd) ": "; /* 显示计数器 */
}
</style>
</head>
<body>

    <div class="box1">
        <h1>使用 CSS 计数器demo1:</h1>
        <h3>GOOGLE</h3>
        <h3>RUNOOB</h3>
        <h3>TAOBAO</h3>
    </div>

    <div class="box2">
        <h1>使用 CSS 计数器demo2:</h1>
        <h3>GOOGLE</h3>
        <h3>RUNOOB</h3>
        <h3>TAOBAO</h3>
    </div>

    <div class="box1">
        <h1>使用 CSS 计数器demo3:</h1>
        <h3>GOOGLE</h3>
        <h3>RUNOOB</h3>
        <h3>TAOBAO</h3>
    </div>
    
    <div class="demo">使用 CSS 计数器demo4:</div>
</body>
</html>
image.png

属性介绍

counter-reset

用于将 CSS 计数器重置为制定值


image.png

比如上面的demo1和demo3使用的同一个计数器 “xxxx” ,这个可以随便定义,在需要计数的地方使用counter-increment设置为这个值即可。

counter-increment

counter-increment属性用于将CSS Counters (en-US)的值增加给定值


image.png

counter()函数

真正统计的函数,统计你指定的这个计数器出现了多少次。

直白理解

就是counter-reset 设置个值,用于代表同一类计数器,然后需要累计的元素上搭配counter-increment、counter。counter-increment用于+1操作,counter计算这类计数器出现了多少次。后面如果再遇到counter-reset,则重置counter-reset后面设置的这个计数器,标记increment后也从1开始累加。

注意:counter-reset不是说只会限制在当前这个父元素内部!仔细看上面的demo4就理解了!计数器其实是个全局的变量!建议每次使用时都先使用counter-reset重置下,每次都重新计数。

若对你有帮助,请点个赞吧,若能打赏不胜感激,谢谢支持!
本文地址:https://www.jianshu.com/p/8c8b81007f0d?v=1695716521065,转载请注明出处,谢谢。

参考:
https://www.runoob.com/cssref/func-counter.html
https://developer.mozilla.org/zh-CN/docs/Web/CSS/counter-reset
https://developer.mozilla.org/zh-CN/docs/Web/CSS/counter-increment

上一篇下一篇

猜你喜欢

热点阅读