美文网首页
css-counter属性

css-counter属性

作者: Cassie_Lala | 来源:发表于2019-01-30 10:10 被阅读0次

前言

博客原文查看可点击《CSS counter属性》哦!
本文引用张鑫旭大大博客文章《CSS counter计数器(content目录序号自动递增)详解》,一直觉得鑫大大是个被程序员耽误的小说家,他的文章风格大都以浅明深,诙谐幽默,可点击这里查看原文哦。

好了,It's my show time!
在了解到counter之前,想到计数应该属ulol标签元素了吧,但它们的递增规则单一,无法实现自定义的递增。而counter属性完美的解决了这个问题,让我们一起来看看吧。
首先,使用一个属性前,我们一定得了解一下它的兼容性,曾经被IE兼容性虐哭的我,不得不小心作为一个好用属性的兼容问题。

兼容性

 I E   Firefox Chrome Safari Opera iOS Safari Android Browser Android Chrome
8.0+ 2.0+ 4.0+ 3.1+ 3.5+ 3.2+ 2.1+ 18.0+

  看到这里是不是心里放松了很多,它的兼容性还是可以的接受的,范围不算局限。

counter的使用题要

CSS计数器只能跟content属性在一起的时候才有作用,而content属性貌似专门用在before/after伪元素上的。于是,就有了,“计数器↔伪元素↔content属性”的铁三角关系

counter成员

counter的成员主要有三个:

  • counter-reset(计数器声明及初始值设置)
  • counter-increment(递增规则)
  • counter()/counters(计算结果生成)

counter-reset

counter-reset主要有三个属性。

  • none:默认。不能对选择器的计数器进行重置。
  • name numname即标记计数器名称,num即记录计数器初始值。num非必写,默认为0。
  • inherit:规定应该从父元素继承 counter-reset 属性的值。

counter-increment

counter-increment主要有三个属性。

  • none:没有计数器将递增。
  • name numname即选择递增的计数器,num即增量。num非必写,默认为1,可以是正数、零或者负数。
  • inherit:指定counter-increment属性的值,应该从父元素继承。

counter()/counters()

这是个方法,不是属性。类似CSS3中才calc()计算。

  • name:选择递增的计数器。
  • style:递增的数字样式:阿拉伯数字,罗马数字等,具体如下:

list-style-type:disc | circle | square | decimal | lower-roman | upper-roman | lower-alpha | upper-alpha | none | armenian | cjk-ideographic | georgian | lower-greek | hebrew | hiragana | hiragana-iroha | katakana | katakana-iroha | lower-latin | upper-latin

  • string:counters的属性,子序数连接符

<font color="#a00">注:</font>多个计数器还可同时命名,接下来我们上代码看几个例子。

CSS:
1. counter-reset属性
.xxx { 
  counter-reset: count; /* 计数器名称是'count', 并且默认起始值为0 */
} 

.xxx { 
  counter-reset: count 4; /* 计数器名称是'count', 并且默认起始值为4 */
} 

.xxx { 
  counter-reset: count1 2 count2 3; /* 定义两个计数器'count1'和'count2',默认起始值分别为2和3 */
} 

2. counter-increment属性
.counter { 
  counter-increment: count 2; /*'count'以2阶段递增 */
}

.counter { 
  counter-increment: count -1;  /*'count'以1阶段递减 */
}

3. counter方法
counters(name, style);

.counter:before { 
  content: counter(count1) '\A' counter(count2);  /*'\A'使用inline水平元素换行*/
  white-space: pre; 
}

  接下来看一个完整的例子。
效果如图:

css-counter_1.jpg
<div class="box">
    <div class="list">一级标题
    <div class="box">
      <div class="list">二级标题</div>
      <div class="list">二级标题</div>
      <div class="list">二级标题</div>
    </div>
    <div class="box">
      <div class="list">二级标题
        <div class="box">
          <div class="list">三级标题</div>
          <div class="list">三级标题</div>
          <div class="list">三级标题</div>
        </div>
      </div>
    </div>
    <div class="box"></div> 
    </div>
  <div>
  <div class="list">一级标题<div>
</div>

<style>
.box { 
  counter-reset: counter; 
}
.toper, .inner { 
  background-color: #eee; 
  margin-left: 20px; 
}
.list:before, 
.toper:before,
.inner:before { 
  counter-increment: counter; 
}

.list {
  padding-left: 20px;
}

.inner:before, 
.list:before, 
.toper:before {
  content: counters(counter,'.')'、';
}
</style>

OK至此,关于counter的介绍就差不多结束了,可以在实践过程中发现和挖掘更有意思的操作,如果你有什么有趣的神操作,可以给我留言分享哦!啦啦啦

相关文章

  • css-counter属性

    前言 博客原文查看可点击《CSS counter属性》哦!本文引用张鑫旭大大博客文章《CSS counter计数器...

  • 成员属性、静态属性、私有属性、原型属性

    一、成员属性和成员方法在构造函数中,通过this.属性声明,或者实例化出对象后,通过“对象.属性”追加的,都属于成...

  • swift 属性(存储属性、计算属性、懒加载属性、类型属性)

    存储属性 存储属性:用于存储一个常量或变量 结构体实例赋值给常量,该实例属性不能被修改(因为结构体属于值类型,当值...

  • jQuery属性操作

    attr(属性名,属性值)操作所有属性 removeAttr(属性名) prop(属性名,属性...

  • 依赖属性|简单属性|附加属性

    依赖属性 简单理解就是属性,支持继承,比如 Window 有 Font 属性,Button 也有 Font 属性,...

  • attribpromote

    属性创建。 属性名称,属性类别,默认属性,输出属性。 属性转移,atteibutrename. 在点属性上,现有属...

  • 网站基本情况记录

    各类属性: 样例: //辅助属性:属性//可确定同表的属性:属性//其他相关属性:属性 乐器相关属性 乐器id乐器...

  • 人生三属性

    人生三属性:可分为善良属性,激情属性,愚昧属性; 三属性又分为个性三属性、时间三属性、食物三属性。...

  • 03-第三章 函数、自定义属性、事件

    一、 变量与属性的区别 属性分节点属性 和js属性节点属性 :元素自带属性js属性:js中自定义的属性 当js属性...

  • Swift--属性与下标

    存储属性 计算属性 属性观察者 静态属性 使用下标 存储属性 存储属性概念 存储属性可以存储数据,分为常量属性(用...

网友评论

      本文标题:css-counter属性

      本文链接:https://www.haomeiwen.com/subject/ezyqsqtx.html