读《CSS世界》小记 4.1.2-6 content计数器

前言

前面的几章都是读完之后才把标题加完整的,因为我不确定都到哪里会有足够的篇幅,但是这一章节直接指定了小节数,懂了吧,这一小节非常非常的长,例子非常非常的多,写这句话时我知识粗略的翻了一遍。开始吧

content-reset

顾名思义,计数器重置,作用是起名字+指定初始值 可以同时初始化多个计数器, 名1 值1 名2 值2 其中都是使用 空格分离,空格分离,空格分离,空格分离

content-increment

计数器增量

counter()

计数输出

上面的概念整理为:

名字的指定规则:正常命名
值的指定规则:尽量为整数,chrome浏览器对小数向下取整,其他的浏览器不识别
普照规则普照源唯一,普照一次,普照源增加一次指定值

有counter-increment就有普照,counter可以理解为只是输出

这里贴一个测试过的代码,加强理解:

//html
<p></p>

//css
p{  
	counter-reset: yancy 2;   //普照源:  名字+初始值
	counter-increment: yancy 3;//普照:  名字+增量 (就是一次增加多少,不指定的话默认为1)
}
p::before{
	content: counter(yancy);  //普照一次    counter(普照源名称)
}

//结果就不贴了, 就一个数字 5  (2+3)

到目前位置,我们只接触到了最简单的用法,甚至不能称之为用法,因为它“不完整”
完整的用法是

counter(name, style) //这个style支持list-style-type的所有值

那么怎么用呢?我们之前改变的都是纯数字,整数,通过style我们可以递增罗马符号或者英文字母,只要是style支持的值,都可以进行操作。

<p class="counter"></p>

//css
.counter {
  counter-reset: wangxiaoer 2;  //只要看这个就行了,这个括号中其他的都可以不要
  font-size: 32px; 
  font-family: Arial black; 
  color: #cd0000; 
}
.counter:before,
.counter:after {
  display:block;
  content: counter(wangxiaoer, lower-roman);  //style为罗马字符
  counter-increment: wangxiaoer;  //普照
}

再来个例子,我自己从这个例子中理解到了counter其实和js中的console.log差不多。。。就是个输出

<p class="counter"></p>

//css
.counter { counter-reset: wangxiaoer 2 wangxiaosan 3; }     //同时初始化两个普照源+初始值
.counter:before { 
	counter-increment: wangxiaoer 1  wangxiaosan 2;  //同时指定两个普照的增量,记住 有它就有普照
	 content: counter(wangxiaoer) '\A' counter(wangxiaosan);  //前面已经说过,'\A'是换行,这不是就是换行输出吗。。。
	 white-space: pre; 
}

counters

前面讲的都是counter,这里虽然是加了一个s,但是完全不一样了。

counters(name, string); //基本使用格式
~
参数解释:
string 参数为字符串(需要引号包围的,是必需参数),表示子序号的连接字符串。例如,1.1 的 string 就是’.’,1-1 就是’-’。

贴个原文例子吧

写个我自己的结论,关于嵌套计数的。
下面的标题和markdown语法的一、二级标题类似。
每一级设置一个普照源,每个子元素都要是设置普照(increment)。

//html
<div class="reset">
    <div class="counter">我是王小二
        <div class="reset">
            <div class="counter">我是王小二的大儿子</div>
            <div class="counter">我是王小二的二儿子
                <div class="reset">
                    <div class="counter">我是王小二的二儿子的大孙子</div>
                    <div class="counter">我是王小二的二儿子的二孙子</div>
                    <div class="counter">我是王小二的二儿子的小孙子</div>
                </div>
            </div>
            <div class="counter">我是王小二的三儿子</div>
        </div>
    </div>
    <div class="counter">我是王小三</div>
    <div class="counter">我是王小四
        <div class="reset">
            <div class="counter">我是王小四的大儿子</div>
        </div>
    </div>
</div>


//css
.reset { 
  padding-left: 20px; 
  counter-reset: wangxiaoer;
}
.counter:before { 
  content: counters(wangxiaoer, '-') '. '; 
  counter-increment: wangxiaoer;
}

使用注意项:输出普照counter的元素必须在普照counter-increment后面,类似先main后nav这样

好吧,其实也没有多长,但是还没有实际的应用^ .^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值