用css就可以实现累加效果的神器--counter
今天在做一个类似下面显示效果的活动页:

在前端骚操作越来越多的普遍趋势影响下,前面用箭头表示出的东西,我打算直接用before伪类去搞,这样不仅减少了标签的使用,对自己工作量的减少也是有少许作用的,然而具体实施是遇到一个头疼的问题就是伪类的content的值,因为content的值是要递增的,所以不知道counter之前,我想到的就是nth-child选择器和js控制,但是这两种,无论哪一个工作量都不小,而且,用js更有可能引发回流造成页面的性能影响。
好在,之前看张鑫旭《css世界》一书的时候,对counter略有映象,所以就把思路放到counter上了,经过十几分钟的时间成功实现了这个效果。下面结合官方解说(MDN),以及自己的理解说一下counter。
counter-reset
The counter-reset CSS property is used to reset CSS Counters to a given value.
就是说一个counter会由counter-reset重置,语法如下:
counter-reset:<custom-ident> <integer>
一般来讲,用到counter的地方肯定会是一个列表,或者类似列表的东西,所以重置一个counter应该选择在他们共同父级上,比如,我的dom长这样:

那初始化counter的地方肯定就是在ul上了!初始化之后,就要决定这个counter应该 在什么时候开始类增,所以就到counter-increment出场的时候了:
counter-increment
The counter-increment CSS property is used to increase the value of CSS Counters by a given value. The counter's value can be reset using the counter-reset CSS property.
更具体一点来说,这个属性就是用来改变前面counter-reset初始化之后的counter的,他决定了counter应该在什么时候增加,每次增加多少 ,想我前面那个dom结构肯定是遇到li的时候增加的。语法
counter-increment:<custom-ident> <integer>
以上引用均来自MDN。
所以可以写出以下的css:
ul{
counter-reset: order 0;/*counter初始化*/
}
ul li{
position: relative;
width: fit-content;
margin: 0 auto 15px;
counter-increment: order 1;/*counter变化*/
list-style:none;
}
ul li::before{
content: counter(order);/*counter的使用*/
position: absolute;
left: -40px;
top: 20px;
width: 30px;
height: 30px;
display: flex;
justify-content: center;
align-items: center;
font-size: 16px;
color: #000;
border-radius: 50%;
background:#fff;
}
用css就可以实现累加效果的神器--counter的更多相关文章
- CSS 实现图片灰度效果 兼容各种浏览器
CSS 实现图片灰度效果 兼容各种浏览器如360浏览器 CSS实现图片灰度效果就是通过CSS样式让彩色图片呈现为灰色,相当于把一张图像的颜色模式调整为灰度,CSS可以通过以下几种方法来实现灰度效果. ...
- css实现气泡框效果
前提:气泡框或者提示框是网页很常见的,实现它的方式有很多,我们以前最常用的就是切图片 然后通过 "定位" 方式 定位到相应的位置,但是用这种方式维护很麻烦,比如设计师想改成另外一种 ...
- CSS 实现图片灰度效果
非原创-从网上收索出来的文章 CSS实现图片灰度效果就是通过CSS样式让彩色图片呈现为灰色,相当于把一张图像的颜色模式调整为灰度,CSS可以通过以下几种方法来实现灰度效果. 方式1. IE滤镜 img ...
- 原生JS、CSS实现的转盘效果(目前仅支持webkit)
这是一个原生JS.CSS实现的转盘效果(题目在这:http://www.cnblogs.com/arfeizhang/p/turntable.html),花了半个小时左右,准备睡觉,所以先贴一段代码, ...
- 实用js+css多级树形展开效果导航菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js+css实现带缓冲效果右键弹出菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 如何使用CSS实现小三角形效果
如何使用CSS实现小三角形效果:建议:尽可能的手写代码,可以有效的提高学习效率和深度.在众多的网页效果中,都有小三角形效果的应用,能够增加特定应用的美观度,下面就给出一段实例代码,里面介绍了两种实现小 ...
- CSS实现两端对齐效果
CSS实现两端对齐效果 两端对齐,从概念上来说,其实不难理解.如果不明白什么叫两端对齐,可以玩玩word等办公软件. 下面谈谈如何实现文本的两端对齐.我所知道的大概有以下几种方法 text-align ...
- 不可思议的纯 CSS 实现鼠标跟随效果
直接进入正题,鼠标跟随,顾名思义,就是元素会跟随着鼠标的移动而作出相应的运动.大概类似于这样: 通常而言,CSS 负责表现,JavaScript 负责行为.而鼠标跟随这种效果属于行为,要实现通常都需要 ...
- 不可思议的纯 CSS 滚动进度条效果
结论先行,如何使用 CSS 实现下述滚动条效果? 就是顶部黄色的滚动进度条,随着页面的滚动进度而变化长短. 在继续阅读下文之前,你可以先缓一缓.尝试思考一下上面的效果或者动手尝试一下,不借助 JS , ...
随机推荐
- 浅谈LINUX中/DEV/VDA1文件满了解决方法
1. 先查看内存使用情况 df -h 1 2. 进入/dev/vdal的磁盘挂载的目录 /,查看各个文件占用大小 cd / du -sh * 1 2 注意:进入那个比较大的文件,我这里发现var这个文 ...
- 如何调整Linux系统为正确时区
如果你的 Linux 系统时区配置不正确,必需要手动调整到正确的当地时区.NTP 对时间的同步处理只计算当地时间与 UTC 时间的偏移量,因此配置一个 NTP 对时间进行同步并不能解决时区不正确的问题 ...
- Qt编写安防视频监控系统36-onvif连续移动
一.前言 时隔一年多,重新对视频监控系统的onvif内核重写,一方面为了兼容Qt6,一方面按功能分类提高效率.整体逻辑思路是一样的,主要的改动是由于Qt6不再支持QtXmlPatterns模块(其实这 ...
- error C2589: “(”:“::”右边的非法标记错误的处理
问题:error C2589: "(":"::"右边的非法标记错误的处理 标准库在<algorithm>头中定义了两个模板函数std::min() ...
- Apollo功能及原理详解
前言 公司里面使用的配置中心是携程开源的Apollo,之前我只使用过Nacos,遂记录一下学习过程. Apollo工作原理 模块介绍 上图就是Apollo的总体设计,从下往上挨个分析: ConfigD ...
- 快速定位Linux 内核驱动中GPIO冲突
#全开开kernel log echo "8" > /proc/sys/kernel/printk #打开gpiolib 动态调试 echo 'file gpiolib.c ...
- Solution Set -「NOIP Simu.」20221008
\(\mathscr{A}\sim\)「CF 1680E」Moving Chips Link & Submission. Tag:「水题无 tag」 温暖签到惹, DP 一下就好了 ...
- jQuery---操作指南
功能代码(1)---通过Jquery来处理复选框 实现以下功能: 1:选中第一个复选框,那么下面所有的复选框都选中,去除选中第一个复选框,下面的都不选中 2:当点击全选按钮,上面足球.篮球.游泳.唱歌 ...
- MySQL为Null导致的四大坑
"兵马未动粮草先行",看完了相关的配置之后,我们先来创建一张测试表和一些测试数据. -- 如果存在 person 表先删除 DROP TABLE IF EXISTS person; ...
- 第一个shell脚本(bash脚本)
首先它是一个脚本,并不能作为正式的编程语言.因为是跑在linux的shell中,所以叫shell脚本.说白了,shell脚本就是一些命令的集合.运维工作中把常用的一系列的操作都记录到一个文档中,然后去 ...