來講一個有趣的 CSS 屬性,這個可以幫我們在各種 HTML 元素加上計數的功能,要使用的話首先必須要像 ul, ol 和 li 的關係一樣要有子母的元素,像這樣:
<div>
<h2>皮卡丘</h2>
<h2>小火龍</h2>
<h2>妙蛙種子</h2>
</div>
接著我們設定 CSS 如下
div{ counter-reset:num; } h2::before { counter-increment:num; content:counter(num) '. '; }
我們就會看到如下的結果:
其中 counter-reset 的意思是可以設定變數,後面可以帶初始值,所以如果我們要設定多個變數的話可以像這樣:
在這邊設定了 num 和 section 兩個變數,所以在計算的時候就可以依據變數以及 counter-increment 的值去決定要累加哪個數。
counter-increment 可以放第二個值設定累進值。
可以在 counter 裡設定第二個變數改變 list-style
h3::before { counter-increment:section; content:counter(section, lower-roman) '. '; }
接下來我們透過 counters 來製作一個單純用 list 做不出來的計數效果:
<ol>
<li >第一層
<ol>
<li>第二層
<ol>
<li>第三層</li>
<li>第三層</li>
<li >第三層</li>
</ol>
</li>
<li>第二層</li>
<li>第二層</li>
</ol>
</li>
<li>第一層
<ol>
<li>第二層</li>
<li>第二層</li>
</ol>
</li>
</ol>
css 的部分:
ol{ counter-reset:num; list-style-type: none; } li:before{ content:counters(num, ".") ":"; counter-increment:num; }