CSS3 计数器(CSS Counters)可以允许我们使用css对页面的 任意元素进行计数,实现类似于有序列表 的功能。
与有序列表相比,它的突出特性在于可以对任意元素计数,同时实现个性化计数。
计数器相关属性一览:
属性 | 属性说明 |
counter-reset | 定义计数器,包括初始值、作用域等 |
counter-increment | 设置计数器的增数 |
content | 早::before和::after中生成内容 |
counter() | 在content属性中使用,用来调用计数器 |
@counter-style | 自定义列表样式 |
语法
counter-reset :[<identifier><integer>?]+|none|inherit
含义
用来定义计数器的初值和作用域,默认值为none。
<indentifier>:计数器名称
<integer>:计数器的初始值
当元素display为None时,该属性失效
计数器定义方式解析
代码 | 代码解析 |
counter-reset:counterA | 定义计数器counterA,初始值为默认值0 |
counter-reset:counterA 6; | 定义计数器counterA,初始值为6 |
counter-reset:counterA 4,counterB; | 定义计数器counterA、counterB,初始值分别为4和0 |
counter-reset:counterA 4,counterB 2; | 定义计数器counterA、counterB,初始值分别为4和2 |
语法
counter-increment:[<user-ident><integer>?]+|none
含义
用来增数计数器,默认值为none(阻止计数器增加)
<user-ident>:需要增数的计数器名称
<integer> :计数器增数的值,可以为负值。
我们可以同时增数多个计数器
当元素display为none时,该属性失效。
计数器增数方式解析
代码 | 代码解析 |
counter-increment:counterA | 增数计数器counterA,每次增加1 |
counter-increment:counterA 2 | 增数计数器counterB,每次增加2 |
counter-increment:counterA 2,counterB -1 | 同时增数计数器counterA、counterB,分别加2、-1 |
语法
content :[<counter>]+
<counter> = counter(name)|counter(name,list-style-type)|counters(name,string)|
counters(name,string,list-style-type)
含义
使用计数器,需要结合::before和::after使用。可以同时使用多个计数器。
计数器使用方式解析
代码 | 代码解析 |
content:"Fig." counter(imgCounter); | 混合字符串和计数器imgCounter |
content:"Fig." counter(imgCounter,lower-alpha) | 指定计数器的列表格式 |
content:counters(section,".") " "; | 在计数器之间加上点号,同时在计数器最加上一个空格 |
content:counters(section,".",lower-roman) " "; | 定义计数器为小写罗马数字格式,同时加点号,空格 |
语法格式
@counter-style counterStyleName{
system:算法;
range:使用范围;
symbols:符合;or additive-symbols:符号;
prefix:前缀;suffix:后缀;
pad:补零(eg.01,02,03);
negative:负数策略:
fallback:出错后的默认值;
speakas:语音策略;
}
自定义counter style示例
@counter-style cjk-heavenly-stem{
system:alphabetic;
symbols:"\7532" "\4E59" "\4E19" "\4E01" "\620A" "\5DF1" "\5E9A" "\8F9B" "\58EC" "\7678";
suffix:"、";
}