counter怎么用css

html-css022

counter怎么用css,第1张

很早之前,计数器仅存在于ul,ol等元素中,如何想给其他元素增加计数,就只能通过list-style-image,或者background-image来实现。不过现在css3增加了counter属性,可以实现任何元素的计数作用。不过这个counter属性还需要配合其他css属性一起才能有效果。

首先, counter-reset 主要功能是用来标识计数器的作用域的。它只能作用于选择器上,它的值包括两部分:第一部分为计数器的名字;第二部分为计数器的起始值(默认为0),counter-reset还可以同时声明多个计数器比如:

counter-reset: count 0 /*标识计数器count从1开始*/

counter-reset: count2 2 /*标识计数器count2 从3开始*/

counter-reset: count1 0 count3 0 count4 0 /*声明了三个计数器,count1,count2,count3*/

counter-increment 表明计数器实际用到的范围 。他的值也包括两部分:第一个为计数器的名字,即counter-reset设置好的名字,第二个值标识递增的值(默认为1),比如:

counter-increment: count 1 /*表明每次递增 1*/

counter-increment:count 2 /*表明每次递增 2*/

最后一个,content和counter搭配使用,content主要是跟 :after, :before,::after,::before来搭配用的,counter主要是给元素插入计数器的值。

整体例子如下:

<dl>

<dt>example</dt>

<dd>example</dd>

<dd>example</dd>

<dd>example</dd>

<dt>example2</dt>

<dd>example2</dd>

<dd>example2</dd>

<dd>example2</dd>

<dd>example2</dd>

</dl>

dl { counter-reset:test1 0}

dt { counter-increment: test1counter-reset: test2 0}

dt:before{ content:counter(test1)"、"}

dd{ counter-increment:test2}

dd:before{

content:counter(test1)"-"counter(test2)"、"

}

<div class="wrapper">

  <div class="load-bar">

    <div class="load-bar-inner" data-loading="0"> <span id="counter"></span> </div>

  </div>

  <h1>Loading</h1>

  <p>Please wait...</p>

</div> * {

box-sizing: border-box

}

html {

height: 100%

}

body {

background: #efeeea

background: linear-gradient(#f9f9f9, #cecbc4)

background: -moz-linear-gradient(#f9f9f9, #cecbc4)

background: -webkit-linear-gradient(#f9f9f9, #cecbc4)

background: -o-linear-gradient(#f9f9f9, #cecbc4)

color: #757575

font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif

text-align: center

}

h1, p {

padding:0 margin:0

}

.wrapper {

width: 350px

margin: 200px auto

}

.wrapper p a {color:#757575 text-decoration:none}

.wrapper .load-bar {

width: 100%

height: 25px

border-radius: 30px

background: #dcdbd7

position: relative

box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8),  inset 0 2px 3px rgba(0, 0, 0, 0.2)

}

.wrapper .load-bar:hover .load-bar-inner, .wrapper .load-bar:hover #counter {

animation-play-state: paused

-moz-animation-play-state: paused

-o-animation-play-state: paused

-webkit-animation-play-state: paused

}

.wrapper .load-bar-inner {

height: 99%

width: 0%

border-radius: inherit

position: relative

background: #c2d7ac

background: linear-gradient(#e0f6c8, #98ad84)

background: -moz-linear-gradient(#e0f6c8, #98ad84)

background: -webkit-linear-gradient(#e0f6c8, #98ad84)

background: -o-linear-gradient(#e0f6c8, #98ad84)

box-shadow: inset 0 1px 0 rgba(255, 255, 255, 1),  0 1px 5px rgba(0, 0, 0, 0.3),  0 4px 5px rgba(0, 0, 0, 0.3)

animation: loader 10s linear infinite

-moz-animation: loader 10s linear infinite

-webkit-animation: loader 10s linear infinite

-o-animation: loader 10s linear infinite

}

.wrapper #counter {

position: absolute

background: #eeeff3

background: linear-gradient(#eeeff3, #cbcbd3)

background: -moz-linear-gradient(#eeeff3, #cbcbd3)

background: -webkit-linear-gradient(#eeeff3, #cbcbd3)

background: -o-linear-gradient(#eeeff3, #cbcbd3)

padding: 5px 10px

border-radius: 0.4em

box-shadow: inset 0 1px 0 rgba(255, 255, 255, 1),  0 2px 4px 1px rgba(0, 0, 0, 0.2),  0 1px 3px 1px rgba(0, 0, 0, 0.1)

left: -25px

top: -50px

font-size: 12px

font-weight: bold

width: 44px

animation: counter 10s linear infinite

-moz-animation: counter 10s linear infinite

-webkit-animation: counter 10s linear infinite

-o-animation: counter 10s linear infinite

}

.wrapper #counter:after {

content: ""

position: absolute

width: 8px

height: 8px

background: #cbcbd3

transform: rotate(45deg)

-moz-transform: rotate(45deg)

-webkit-transform: rotate(45deg)

-o-transform: rotate(45deg)

left: 50%

margin-left: -4px

bottom: -4px

box-shadow:  3px 3px 4px rgba(0, 0, 0, 0.2),  1px 1px 1px 1px rgba(0, 0, 0, 0.1)

border-radius: 0 0 3px 0

}

.wrapper h1 {

font-size: 28px

padding: 20px 0 8px 0

}

.wrapper p {

font-size: 13px

}

 @keyframes loader {

 from {

width: 0%

}

to {

width: 100%

}

}

 @-moz-keyframes loader {

 from {

width: 0%

}

to {

width: 100%

}

}

 @-webkit-keyframes loader {

 from {

width: 0%

}

to {

width: 100%

}

}

 @-o-keyframes loader {

 from {

width: 0%

}

to {

width: 100%

}

}

 @keyframes counter {

 from {

left: -25px

}

to {

left: 323px

}

}

 @-moz-keyframes counter {

 from {

left: -25px

}

to {

left: 323px

}

}

 @-webkit-keyframes counter {

 from {

left: -25px

}

to {

left: 323px

}

}

 @-o-keyframes counter {

 from {

left: -25px

}

to {

left: 323px

}

}