CSS 计数器详解

在前端开发中总少不了列表项,对于列表项序号,射鸡师一般会列出个1,2,3...序号。在不了解css计数器属性之前,我一般会用精灵图,用类名来区分序列号图片。这样做尽管可以达到目的,但是很不方便,开发过程耗时较长而且维护修改起来较困难。用css counter配合伪类的content完美的解决了这个问题,这里详细介绍下css counter属性

计数器属性介绍

计数器的值通过使用counter-reset 和 counter-increment 操作,在 content 上应用 counter() 或 counters()函数来显示在页面上。

counter-reset

设置计数器的名称和起始值

Name:counter-reset
Value:  [ <custom-ident> <integer>? ]+ | none
Initial:    none
Applies to: all elements
Inherited:  no
Percentages:    n/a
Computed value: the keyword none or a list, each item an identifier paired with an integer
Canonical order:    per grammar
Animation type: by computed value type

custom-indent 计数器名字 可以同时命名多个计数器
integer 初始值 默认是0 也可以是负数

.counter{
    counter-reset:sequence; /* 计数器名称是sequence */
}
.counter{
    counter-reset:sequence 2; /* 计数器名称是sequence 且起始值是2*/
}

counter-increment

设置某个计数器每次计数的变化值。如果缺省,则使用默认变化值1

Name:   counter-increment
Value:  [ <custom-ident> <integer>? ]+ | none
Initial:    none
Applies to: all elements
Inherited:  no
Percentages:    n/a
Computed value: the keyword none or a list, each item an identifier paired with an integer
Canonical order:    per grammar
Animation type: by computed value type

custom-indent 计数器名字 可以同时命名多个计数器
integer 初始值 默认是1

counter()

这是个方法,不是属性,作用是用字符串或图片将计数器显示出来。这两个计算方法要和伪元素的 content 属性搭配使用。
用法一

content: counter(name)

counter 计算符前后可以随意加字符串来对最后的效果做拼接。可点击查看demo
用法二

content: counter(name,style)

这里的style参数支持的关键字值就是list-style-type支持的那些值。作用是,我们递增递减可以不一定是数字,还可以是英文字母,或者罗马文等。

list-style-type:disc | circle | square | decimal | lower-roman | upper-roman | lower-alpha | upper-alpha | none | armenian | cjk-ideographic | georgian | lower-greek | hebrew | hiragana | hiragana-iroha | katakana | katakana-iroha | lower-latin | upper-latin

可点击查看demo
counter()实现多层嵌套demo

counters()

作用和counter()一样,差别是counters只用于多层嵌套

counters(name,string)
counters(name,string,style)  /*style参数与counter相同*/

其中,string参数为字符串(需要引号包围的)(必须参数),表示子序号的连接字符串。例如1.1的string就是‘.‘, 1-1就是‘-‘.
counters()实现多层嵌套demo

对比counter()和counters()实现的多层嵌套
counter()实现多层嵌套时,他的层级序号是手动拼起来的
counters()的多层嵌套则是嵌套层会自动带上其父层的嵌套序号

注意点
一个元素,如果设置了counter-increment, 但是其display的属性值是none或者含有hidden属性(针对支持浏览器),则此计数值是不会增加的。而visibility:hidden以及其他声明不会有此现象。

兼容性

IE8以上都兼容,所以在列表项排序的时候可以放心大胆地使用,
可点击查看caniuse结果

参考资料

CSS counter计数器(content目录序号自动递增)详解

原文地址:https://www.cnblogs.com/jesse131/p/11529944.html

时间: 2024-10-18 06:10:41

CSS 计数器详解的相关文章

CSS选择器详解

CSS选择器详解 选择器是CSS的核心,从最初的元素.class/id选择器,演进到伪元素.伪类,以及CSS3中提供的更丰富的选择器,定位页面上的任意元素开始变得愈发的简单. 1.元素选择器 这是最基本的CSS选择器,HTML文档中的元素本身就是一个选择器: p {line-height:1.5em; margin-bottom:1em;} 2.关系选择器 E F:后代选择器,该选择器定位元素E的后代中所有元素F: ul li {margin-bottom:0.5em;} E > F:子选择器,

彻底理解浮动float CSS浮动详解 清除浮动的方法

我们把网页的常用的布局格式分为以下三种: 1.标准流. 所谓的标准流就是,行内元素自己单独一行,而块级元素是上下显示的. 以前我们学习的都是标准流.   注意:标准流使我们网页布局中最稳定的一种结构 2. 浮动流 使我们学习的脱离标准流的第一种方式.会影响我们标准流的排列.所以,我们布局的时候,能用标准流做的,就不用浮动做. 3. 定位流 定位流也是脱离标准流的一种模式.它完全脱离标准流,不会对标准流有影响. 浮动(float) 我们要浮动的目的: 我们浮动的目的,就是可以把多个块级元素放到想要

CSS优先级详解(权重详解)

CSS选择器权重值的计算 对于Css权重,现在网上很多版本都是这样计算的:内联样式1000点,ID100点,Class.伪类(pseudo-classes)或属性选择器10点,标签元素和伪元素(pseudo-elements)1点:虽然大多数时候是正确的但因为真正的原理并非如此,所以某些情况下会出错. css权重有ABCD四个值,A代表行间样式,B代表选择器中ID的数量,C代表选择器中类, 伪类, 属性选择器的数量,D代表标签元素和伪元素的数量. 具体理解请看例子: * {} A,B,C,D(0

带你走进CSS定位详解

学习CSS相关知识,定位是其中的重点,也是难点之一,如果不了解css定位有时候都不知道怎么用,下面整理了一下关于定位属性的具体理解和应用方案. 一:定位 定位属性列表 position top bottom right left z-index position 基本语法: position:static | absolute | fixed | relative 语法介绍: static:默认值,无特殊定位. absoulte:相对于其最近的一个定位设置的父对象进行绝对定位,可用left,ri

CSS长度单位详解

序言 长度单位可以总体的分为绝对长度单位和相对长度单位.CSS中最为大家熟知的无疑是px和em,但与此同时还存在pt, rem, vw, vh等其他计量单位,使用好它们可以大大增长我们的开发效率.本篇文章试图整理在前端开发中用到的CSS单位和其应用场景. px——像素 px是pixel缩写,是基于像素的单位.在浏览网页过程中,屏幕上的文字.图片等会随屏幕的分辨率变化而变化,一个100px宽度大小的图片,在800×600分辨率下,要占屏幕宽度的1/8,但在1024×768下,则只占约1/10.所以

(转)LR监控Linux系统性能计数器详解

从LR里面add measurement,填写linux机器的IP,出现所有unix/linux的计数器,包括cpu的,mem的,disk,network的.这里介绍几个常用的: (对于如何监控Linux,请参考之前这写的一篇文章<loadrunner监控Linux之前需要做的准备工作>) average load :在过去的1分钟的平均负载 cpu utilization: cpu的使用率 disk traffic: disk传输率 paging rate:每秒从磁盘读到物理内存,或者从物理

css line-height详解

转自http://www.cnblogs.com/dolphinX/p/3236686.html 初入前端的时候觉得CSS知道display.position.float就可以在布局上游刃有余了,随着以后工作问题层出不穷,才逐渐了解到CSS并不是几个style属性那么简单,最近看了一些关于行高的知识,就此总结一下. 所谓行高是指文本行基线间的垂直距离.要想理解这句话首先得了解几个基本知识: 顶线.中线.基线.底线 <!DOCTYPE html> <html> <head>

CSS系列(6) CSS通配符详解

通配符使用星号*表示,意思是“所有的”. 平时使用电脑,比如要搜索C盘里所有的网页,可以使用 *.html来搜索,.html是网页的后缀名,*代表了所有网页的名称: 也就是使用 * 加后缀名,就可以在电脑中搜索文件. 在CSS中,同样使用 * 代表所有的标签或元素,它叫做通配符选择器. 比如:* { color : red; } 这里就把所有元素的字体设置为红色. *会匹配所有的元素,因此针对所有元素的设置可以使用*来完成,用的最多的例子如下: *{margin:0px; padding:0px

CSS z-index详解

概念 z-index 属性设置元素的堆叠顺序.拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面. 层级关系的比较 1. 对于同级元素,默认(或position:static)情况下文档流后面的元素会覆盖前面的. 2. 对于同级元素,position不为static且z-index存在的情况下z-index大的元素会覆盖z-index小的元素,即z-index越大优先级越高. 3. IE6/7下position不为static,且z-index不存在时z-index为0,除此之外的浏览器z