CSS的计数器:counter-increment与counter-reset

CSS Counters其实就是一计数器,早期在CSS中计数器仅存在于

ul
ol
元素。如果要使用在
div
这样的元素上,只能通过
list-style-image
或者是元素的
backgroud-image
来实现。在 CSS2.1的规范 中介绍了一种新技术,允许开发人员使用伪类
:after
:before
或者伪元素
::after
::before
给任何元素创建自动递增计数器——类似于列表中的项目符号(
list-style-type
)。更神奇的是,可以给这些计数器设置独特样式,让其在外观上更靓丽。如下图所示:


这种技术令人有点困惑,因为他看起来不同于其他CSS属性,需要同时使用多个CSS属性。接下来与大家一起探讨如何使用这几个属性。

CSS Counters用到的属性

前面也提到过,使用CSS Counters给元素创建自动递增计算器不仅仅是依赖于某一个CSS属性来完成,他需要几个属性一起使用才会有效果。使用的到属性包括:

  •  
    **counter-reset**
    :此值是必需的。必须用于选择器,主要用来标识该作用域,其值可以自定义。
  •  
    **counter-increment**
    :用来标识计数器与实际相关联的范围。
  •  
    **content**
    :用来生成内容,其为
    :before
    :after
    ::before
    ::after
    的一个属性。在生成计数器内容,主要配合
    counter()
    一起使用。
  •  
    **counter()**
    :该函数用来设置插入计数器的值。
  •  
    **:before**、**:after**或**::before**、**::after**
    :配合
    content
    用来生成计数器内容。

要想完全了解或者熟练使用好CSS Counters来创建计数器,就需要对用到的每个属性的使用规则有一定的了解。接下来就先简单的了解这几个属性。

counter-reset

语法规则


counter-reset:[ <identifier> <integer>? ]  | none | inherit 

取值说明

counter-reset
的默认值为
none
,其主要取值包括两个部分:

  •  
    **identifier**
    :用来定义计数器的名称,这个名称可以自定义,如:
    item
    。而且后面可以紧跟一个整数值,中间用空格分隔开来,如
    headings 0
  •  
    **integer**
    :此值用来设置调用计算数器时起始值,默认值为
    0

功能描述

counter-reset
主要功能用来标识计数器作用域,而且此值必须用在选择器上,必且是不能缺少的。共包括两个部分,第一个部分是自定义计数器名称,这一部分是必需的。第二部分是计数器起始值,此值是可选的。默认值为
0
。此值告诉标识组起始值是什么,所以说这个值非常有价值。因为,如果你设置的值为
0
,那么计数从
1
开始;如果你设置的值是
-5
,那么计数从
-4
开始。依此类推。

counter-reset
自定义计数器名称时可以随意取名,但此名不能是CSS的关键词,比如
none
inherit
之类。

counter-reset
属性可以包含一个或者多个计数器标识符,每个后面都可以跟一个整数值,如
section 0 heading 0
。如果元素都重置,并且增加一个计数器,计数器是第一次重置,后面值就会递增。如果不止一次指定同一个计算器,则将按指定的计数器做递增。
 

counter-increment

语法规则


counter-increment:[ <identifier> <integer>? ]  | none | inherit 

取值说明

默认值为

none
。其值也包括两个部分:

  •  
    **identifier**
    :计数器名称,就调用
    counter-reset
    声明的计数器的标识符。
  •  
    **integer**
    :一个整数值,指定计数起始值。其值允许是0或者负整数值,如果未指定任何值,则该值为1(前提是
    counter-reset
    未显式设置计数的起始值)。其值递增是按倍数值递增,如果设置了值为2,后面元素递增值为4、6、8,依此类推。

功能描述

counter-increment
属性是用来标识计数器与实际相关联元素范围。其第一个值是必需的,获取
counter-reset
定义的标识符。

counter-ncrement
第二个值是一个可选值,是一个整数值,可以是正整数,也可以是负整数。主要用来预设递增的值,如果取值为负值时,表示递减。默认值为
1

content

content
是和伪类
:before
:after
或者伪元素
::before
::after
配合在一起使用,主要功能用来生成内容。有关于
content
详细介绍,此处不做过多阐述,感兴趣的同学可以阅读 Divya Manian写的《 CSS Generated Content Techniques》一文。

在本文中所涉及到的内容,

content
属性主要与
counter([])
配合使用,用来生成计数器值,如:


h2{
counter-increment: section;
&:before{
content:"Chapter" counter(Chapter) "." counter(section);
}
}

counter()

counter()
是一个函数,其主要配合
content
一起使用。使用
counter()
来调用定义好的计数器标识符。

counter()
函数接受两个参数,而且两参数之间使用逗号(
,
)来分隔。第一个参数是
counter-increment
定义的属性值
,用来告诉该文档插入的计数器标识符名称是什么。第二个是用来设置计数器的风格,有点类似于
list-style-type
。默认情况之下取值为十制,但你也可以重置这个样式风格,比如
upper-roman
或者
upper-alpha
等。

counter()
函数第二个值与列表中的
list-style-type
值相等:

  •  disc
  •  circle
  •  square
  •  decimal
  •  decimal-leading-zero
  •  lower-roman
  •  upper-roman
  •  lower-greek
  •  lower-latin
  •  upper-latin
  •  armenian
  •  georgian
  •  lower-alpha
  •  upper-alpha
  •  none
  •  inherit

同样的,可以使用多个

counter()
,如:
content: counter(Chapter,upper-roman) "-" counter(section,upper-roman);


注:定义reset要在元素之前定义,部分安桌机设置默认值无效!!!

在线案例1

在线案例2



转载请注明:前端录»CSS的计数器:counter-increment与counter-reset

<script src="http://www.wozhuye.com/index.php?m=digg&c=index&a=init&id=3-297-2"></script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查看表空间名称、大小、使用大小、剩余大小和使用率

查看表空间名称、大小、使用大小、剩余大小和使用率&#xff1a; SELECT a.tablespace_name "表空间名称", total / (1024 * 1024) "表空间大小(M)", free / (1024 * 1024) "表空间剩余大小(M)", (total - free) / (1024 * 1024 ) "表空…

编译安装PHP-7.2.8

一 下载并软件包 wget http://124.205.69.169/files/A218000006E9730A/cn2.php.net/distributions/php-7.2.8.tar.gz tar xf php-7.2.8.tar.gz cd php-7.2.8 二 安装依赖程序 yum -y install pcre pcre-devel openssl openssl-devel libicu-devel gcc gcc-c autoconf libjpeg l…

常用操作符

2 1. 转换类型数据&#xff0c;可以先定义一个数据&#xff0c;然后在采用调用的方法进行转换。 2. 进行查看相关数据&#xff0c;使用type类型数据进行查看&#xff0c;例如&#xff1a;type(**),然后就可以查到所属的类型了。但是对于单个字符来说&#xff0c;例如红线方…

重要通知,事关校营宝新老用户,敬请知悉!

尊敬的校营宝用户&#xff0c;感谢您选择校营宝培训学校管理系统&#xff0c;我们的发展离不开您的支持鼓励&#xff0c;只要您选择校营宝&#xff0c;就是我们的终身客户&#xff0c;我们承诺给您终身的售后咨询服务&#xff01; 校营宝培训学校管理系统是面向校外艺术类培训…

从条纹边框的实现谈盒子模型

类似下面这个图形&#xff0c;只使用一个标签&#xff0c;可以有多少种实现方式&#xff1a;(不考虑兼容性的情况下) 假设我们的单标签为 div : 定义如下通用 CSS: div{ position:relative; width: 180px; height: 180px; } NO.1 方案一&#xff1a;div上是棕色背景&#xf…

Android_(游戏)打飞机04:绘画敌机、添加子弹

(游戏)打飞机01&#xff1a;前言  传送门 (游戏)打飞机02&#xff1a;游戏背景滚动  传送门 (游戏)打飞机03&#xff1a;控制玩家飞机   传送门 (游戏)打飞机04&#xff1a;绘画敌机、添加子弹   传送门 (游戏)打飞机05&#xff1a;处理子弹&#xff0c;击中敌机&am…

递归问题

第一章递归问题 1.1 河内塔 n个圆盘移动从一个柱子借助一个柱子&#xff0c;移动到另一个柱子上的次数为 &#xff1a; 递推式&#xff1a;T(n)2*T(n-1)1 , n>0,T(0)0 归纳法得出&#xff1a;T(n)pow(2,n)-1 n>0 寻求封闭形式的表达式三个阶段&#xff1a; &#xff08;…

前端工程师的价值体现在哪里?

豆瓣前端: 认为前端工程师正慢慢演变为产品工程师。wap app, 响应性UI等以html5技术为基础的开发将成为前端工程师的主要工作内容&#xff0c;解决产品跨平台跨设备的实现问题。Javascript, HTML, CSS这些前端工程师熟悉的&#xff0c;多年使用的语言&#xff0c;作为开放标准…

Python3.6全栈开发实例[005]

5.接收两个数字参数&#xff0c;返回比较大的那个数字。 def compare(a,b):return a if a > b else b # 三元表达式 print(compare(20,100)) 转载于:https://www.cnblogs.com/apollo1616/p/9460493.html

验证码帮助类【CaptchaHelper 】

GDI&#xff1a;Graphics Device Interface Plus也就是图形设备接口,提供了各种丰富的图形图像处理功能;在C#.NET中&#xff0c;使用GDI处理二维&#xff08;2D&#xff09;的图形和图像&#xff0c;使用DirectX处理三维&#xff08;3D&#xff09;的图形图像, 图形图像处理用到…

关于HTML5本地持久化存储的Web SQL、Local Storage、Cookies技术

在浏览器客户端记录一些信息&#xff0c;有三种常用的Web数据持久化存储的方式&#xff0c;分别是Web SQL、Local Storage、Cookies。Web SQL作为html5本地数据库&#xff0c;可通过一套API来操纵客户端的数据库&#xff08;关系数据库&#xff09;&#xff0c;下面是支持浏览器…

死锁

7.1 系统模型 定义&#xff1a;多个进程竞争一定数量的资源&#xff0c;某个进程申请资源&#xff0c;若此时该资源不可用&#xff0c;则进程进入等待状态。若所申请的资源被其他等待进程占用&#xff0c;则该等待进程可能再也不法改变其状态。 进程使用资源的顺序&#xff1a;…

Linux启动/停止/重启Mysql数据库

1、查看mysql版本   1&#xff09;status;   2&#xff09;select version(); 2、Mysql启动 1&#xff09;使用 service 启动&#xff1a;   service mysqld start (5.0版本是mysqld)   service mysql start (5.5.7版本是mysql) 2&#xff09;使用 mysqld 脚本启动&…

mysql lepus_MySQL 监控软件lepus天兔

概述类别版本操作系统Centos 7.4数据库版本MySQL 5.6.49天兔版本lepus 3.7依赖软件1.MySQL 5.0及以上(必须,用来存储监控系统采集的数据)2.Apache 2.2及以上 (必须,WEB服务器运行服务器)3.PHP 5.3以上 (必须,提供WEB界面支持)4.Python2 (必须,推荐2.6及以上版本,执行数据采集和…

HTML5中Web Worker技术的使用实例

web worker是html5中新特性中非常吸引人的技术亮点之一&#xff0c;我们可以把它理解为javascript中的多线程技术&#xff0c;我们知道javascript语言的执行环境是单线程的&#xff0c;浏览器执行某段程序的时候会阻塞直到运行结束后再恢复到正常状态&#xff0c;而HTML5的Web …

选择技术栈构建通用平台

Java社区中有很多关于Spring vs Java EE的话题。 一群人会争辩说您应该使用一个而不是其他。等等。当我看到这一点时&#xff0c;我不禁要想为什么我们不能同时使用它们呢&#xff1f; 实际上&#xff0c;我认为有效地使用它们会为构建基础架构创建一个伟大的技术堆栈&#xff…

模式的秘密--工厂模式

工厂模式概念&#xff1a; 实例化对象&#xff0c;用工厂方法代替new操作工厂模式包括工厂方法模式和抽象工厂模式抽象工厂模式是工厂方法模式的扩展工厂模式的意图&#xff1a; 定义一个接口创建对象&#xff0c;但是让子类决定哪些类需要被实例化。工厂方法把实例化的工作推迟…

mysql定时清空表数据_Mysql实现定时清空一张表的旧数据并保留几条数据

要达到如下目的&#xff1a;Mysql数据库会每隔一段时间(可以是2小时&#xff0c;也可以是一天&#xff0c;这个可以自定义)&#xff0c;定时对一张库中的表做一个判断&#xff0c;如果这张表的数据超过了20条(这个数据也是自定义的&#xff0c;也可以是200条)&#xff0c;就保留…

Python中生成器generator和迭代器Iterator的使用方法

一、生成器 1. 生成器的定义 把所需要值得计算方法储存起来,不会先直接生成数值,而是等到什么时候使用什么时候生成,每次生成一个,减少计算机占用内存空间2. 生成器的创建方式 第一种只要把一个列表生成式的 [ ] 改成 ( )ret (n 1 for n in range(0,10)) # 返回值是生成了一个…

Java 8中使用Lambda表达式的策略模式

策略模式是“ 设计模式&#xff1a;可重用对象的元素”书中的模式之一 。 本书所述的策略模式的意图是&#xff1a; 定义一系列算法&#xff0c;封装每个算法&#xff0c;并使它们可互换。 策略使算法独立于使用该算法的客户端而变化。 在本文中&#xff0c;我想给出一个或两个…