content 内容生成技术2

Posted baimeishaoxia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了content 内容生成技术2相关的知识,希望对你有一定的参考价值。

计数器效果可是说是content的重中之重, 此功能非常强大、实用, 且不具有可替代性, 甚至可以实现连js都不好实现的效果. 这个地方放慢节奏, 细细品味.
先来个例子体验一下:
.reset {
    counter-reset: w; 
}
.counter:after {
    content: counter(w);
    counter-increment: w;
    color: red;
}

<h4 class="reset">content 计数器</h4>
<div class="counter">第一个</div>
<div class="counter">第二个</div>
<div class="counter">第三个</div>

技术图片

所谓css计数器效果, 指的是使用css代码实现随着元素数目增多, 数值也跟着变大的效果. 图中红色阿拉伯数字就是css计数器生成的, 这个是一个最基本的实现了.
css计数有这么几个关键点需要注意:

  1. 命名: 要有个称呼(counter-reset)
  2. 规则: 是1、2、3、4还是1、2、1、2呢(counter-increment)
  3. 开始: 没有口令不执行(counter()/counters())

书中作者有个例子 目录结构的实现:

<div class="reset">
    <div class="counter">我是王小二</div>
    <div class="reset">
        <div class="counter">我是王小二的大儿子</div>
        <div class="counter">我是王小二的二儿子</div>
        <div class="reset">
            <div class="counter">我是王小二的二儿子的大孙子</div>
            <div class="counter">我是王小二的二儿子的二孙子</div>
            <div class="counter">我是王小二的二儿子的小孙子</div>
        </div>
        <div class="counter">我是王小二的三儿子</div>
    </div>
    <div class="counter">我是王小三</div>
    <div class="counter">我是王小四</div>
    <div class="reset">
        <div class="counter">我是王小四的大儿子</div>
    </div>
</div>
.reset { 
  padding-left: 20px; 
  counter-reset: wangxiaoer;
}
.counter:before { 
  content: counters(wangxiaoer, ‘-‘) ‘. ‘; 
  counter-increment: wangxiaoer;
}

.reset ~ .counter { 
    color: #cd0000; 
}

技术图片

这里需要注意的是: 一个容器中普照源(counter-reset)是唯一的.
正确的应该是:

<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>

reset与counter是嵌套关系 而不是同级关系




以上是关于content 内容生成技术2的主要内容,如果未能解决你的问题,请参考以下文章

CSS content内容生成技术以及应用

sublime text3 增加代码片段(snipper)

content 内容生成技术1

[ css 伪对象添加 content ] css中content内容生成技术以及应用问题讲解及实例演示

vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容

[ jquery 文档处理 insertBefore(content) before(content|fn) ] 此方法用于把所有匹配的元素插入到另一个指定的元素元素集合的前面,实现外部插入(代码片段