CSS计数器 counter

适用场景:

当排序以及序号变动对服务端造成的压力大的情况下,使用css计数。 在早期,只有ol和ul可以对子元素li进行排序,,而CSS2.1规范中加入了counter这一属性,配合伪元素:before、:after中的content使用,便可以对指定的元素进行排序。

CSS计数器包括了counter-reset、counter-increment、content三个属性、counter() 函数

定义和用法:

counter-increment 属性设置某个选取器每次出现的计数器增量。默认增量是 1。

利用这个属性,计数器可以递增(或递减)某个值,这可以是正值或负值。如果没有提供 number 值,则默认为 1。如果使用了 “display: none”,则无法增加计数。如使用 “visibility: hidden”,则可增加计数。

可能的值:

none 默认。选择器无计数器增量。 id number id 定义将增加计数的选择器、id 或 class。 number 定义增量,可以是正数、零或者负数。 inherit 规定应该从父元素继承 counter-increment 属性的值。

counter-reset 属性设置某个选择器出现次数的计数器的值。默认为 0。利用这个属性,计数器可以设置或重置为任何值,可以是正值或负值。如果没有提供 number,则默认为 0。

可能的值:

none 默认。不能对选择器的计数器进行重置。 id number id 定义重置计数器的选择器、id 或 class。 number 可设置此选择器出现次数的计数器的值。可以是正数、零或负数。 inherit 规定应该从父元素继承 counter-reset 属性的值。

counter()函数只能被使用在content属性上。如果想重复多次计数器可以使用 counters()

第一个参数:counter-increment中定义的计数器标识符; 第二个参数:计数器风格,类似于list-style-type。

demo:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<meta http-equiv="X-UA-Compatible" content="IE=10,IE=9,IE=8">

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">

<title>练小习的前端技术笔记</title>

<style type="text/css">

body {counter-reset:section;}

h1 {counter-reset:subsection;}

h1:before

{

counter-increment:section;

content:"Section " counter(section) ". ";

}

h2:before

{

counter-increment:subsection;

content:counter(section) "." counter(subsection) " ";

}

</style>

</head>

<body>

<h1>HTML tutorials</h1>

<h2>HTML Tutorial</h2>

<h2>XHTML Tutorial</h2>

<h2>CSS Tutorial</h2>

<h1>Scripting tutorials</h1>

<h2>JavaScript</h2>

<h2>VBScript</h2>

<h1>XML tutorials</h1>

<h2>XML</h2>

<h2>XSL</h2>

</body>

</html>

提示:你可以先修改部分代码再运行。

浏览器兼容情况:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Play & Scala 技术分享

酷炫的一行代码 - Scala就是这么任性!

3517
来自专栏偏前端工程师的驿站

Java魔法堂:初探MessageFormat.format和ChoiceFormat

一、前言                                 刚开始从.net的转向java的时候总觉得 String.format 用得不习惯,希...

1808
来自专栏奔跑的蛙牛技术博客

Java中实现的简单算法 && 计算二分查找次数

如果采用其他方式对列表进行排序可以使用List接口的sort方法传入一个Comarable的一个对象

682
来自专栏锦小年的博客

python学习笔记4.3-python高级之元素的分解

序列分解为单独的变量 1.1 将一个包含N个元素的元组或者序列分解成为N个单独的变量。 在python中任何序列或者元素都可以通过一个简单的赋值来分解为...

1975
来自专栏偏前端工程师的驿站

JS魔法堂:jsDeferred源码剖析

一、前言                                最近在研究Promises/A+规范及实现,而Promise/A+规范的制定则很大程度地...

1897
来自专栏Python小屋

Python版24点游戏

24点游戏是指随机选取4张扑克牌(不包括大小王),然后通过四则运算来构造表达式,如果表达式的值恰好等于24就赢一次。下面的代码定义了一个函数用来测试随机给定的4...

2936
来自专栏Python小屋

详解Python的max、min和sum函数用法

max()、min()、sum()这三个内置函数分别用于计算列表、元组或其他可迭代对象中所有元素最大值、最小值以及所有元素之和,sum()只支持数值型元素的序列...

2994
来自专栏xingoo, 一个梦想做发明家的程序员

剑指OFFER之调整数组顺序使奇数位于偶数前面找(九度OJ1516)

题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和...

2056
来自专栏编程理解

排序算法(四):归并排序

归并排序是通过分治的方式,将待排序集合拆分为多个子集合,对子集合排序后,合并子集合成为较大的子集合,不断合并最终完成整个集合的排序。

411
来自专栏天天

DOM

903

扫码关注云+社区