2016-03-21

使用css计数器counter自动生成目录

设计师设计了如下所示的列表图:


design.png

一开始的想法是在段落里面加入一个icon类,作为列表开头的数字,实现完后发现了一个问题,一旦出现换行,下一行会出现icon类的下方,不能实现设计师的设计稿。

但是把icon放在p的外面有不符合逻辑,而且写起来很麻烦。

后来想到使用伪元素before,因为before可以在元素添加进去前放一层在其下面,利用这个功能实现提前在段落前加入一个background-image为蓝色气泡的伪元素,然后定位到左上角,再让段落p有一段padding-left,使得每一段p左边都有一个图标,这样就不用在每个p中手动添加一个icon元素

接下来就是使用css3的一个新属性counter,这是css的content新加入的一个值,能够进行简单的加减乘除计数和重置,因此能够用来自动生成目录。这样就不用手动一个个去进伪元素中了。

<pre><code>
.counter {

    counter-reset: p-counter 0;
            //每当遇到counter类就重置计数器
    }
    .counter p {

      counter-increment: 1;
              // 每当遇到p元素就自增加1
    }
    .counter p:before {
        content: counter(p-counter);
            // 将计数器的值赋给p的伪元素的content
    }

</code></pre>
这是前一周发现的css新特性,markdown了下来,结果真的用上了,所以多看看一些文章有利于提高自己解决方法的能力。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第 19 期周刊由「vincent4j」整理发布 为了能更好的传播产品经理精品文章,我们特意创建「PM 周刊」,将...
    四勾4J阅读 1,288评论 0 0
  • 上周工作总结: 1.余券宝正式上线,Android已经可以下载最新的版本,ios还在审核过程中。第一次面临一个产品...
    小苤阅读 1,315评论 0 1
  • 1、原文 子曰:“父在,观其志;父没,观其行;三年无改父之道,可谓孝矣。” 2、傅佩荣译文 孔子说:“观察一个人,...
    小刀123阅读 2,732评论 0 0
  • 感谢早上的闹钟喊我起床! 感谢暖暖的太阳照到宿舍,太暖和了! 感谢水龙头有水早上可以洗漱! 感谢靖哥哥买的酸奶,大...
    淡陌素雅阅读 1,108评论 0 0
  • 最近有个学生死了,跳楼死的,没什么好稀奇的,死了也就罢了,往往这种人死的毫无新意,无非为情为名,无非污了半尺方圆的...
    LinMu_阅读 1,189评论 0 0

友情链接更多精彩内容