在網(wǎng)頁設(shè)計(jì)中,創(chuàng)建計(jì)數(shù)器的基礎(chǔ)包栝兩個(gè)方面,一是能設(shè)置計(jì)數(shù)器的起點(diǎn),二是能將其遞增一定的置。
前者由屬性counter-reset處理。
counter-reset
值:[<identifier><integer>?]+ | none | inherit
初始值:取決于具體的用戶代理
應(yīng)用于:所有元素
繼承性:無
計(jì)算值:根據(jù)指定確定
計(jì)數(shù)器標(biāo)識(shí)符只是創(chuàng)作人員創(chuàng)建的一個(gè)標(biāo)簽。例如,可以將小節(jié)計(jì)數(shù)器命名為subsection, subsec, ss甚至bob,只要重置(或遞增)標(biāo)識(shí)符,就足以使之建立。在以下規(guī)則中,計(jì)數(shù)器chapter就在重置時(shí)定義:
h1 {counter-reset: chapter;}
默認(rèn)地,計(jì)數(shù)器重置為0。如果想重置為另一個(gè)數(shù),可以在標(biāo)識(shí)符后面聲明這個(gè)數(shù)
h1#ch4 {counter-reset: chapter 4;}
還可以在標(biāo)識(shí)符-整數(shù)對(duì)中一次重置多個(gè)標(biāo)識(shí)符。如果少了一個(gè)整數(shù),則默認(rèn)為0:
h1 {counter-reset: chapter 4 section -1 subsec figure 1;}
/*'subsec' is reset to 0 */
從上例可以看到,負(fù)值是允許的。將計(jì)數(shù)器設(shè)罝為-32768并由此遞增是完全合法的。
注意:如果采用非數(shù)值計(jì)數(shù)樣式,CSS沒有定義用戶代理對(duì)于負(fù)計(jì)數(shù)器值該如何處理。例如,如果一個(gè)計(jì)數(shù)器的值是-5,但是其顯示樣式是upper-alpha,此時(shí)該采取什么行為?對(duì)此就沒有定義。
總之,需要一個(gè)屬性來指示元素將計(jì)數(shù)器遞增。否則,計(jì)數(shù)器將永遠(yuǎn)保持計(jì)數(shù)器重置聲
明中指定的值。毫無疑問,所需的這個(gè)屬性就是counter-increment。
counter-increment
值:[<identifier><integer>?]+ | none | inherit
初始值:取決于具體的用戶代理
應(yīng)用于:所有元素
繼承性:無
計(jì)算值:根據(jù)指定確定
類似于counter-reset,counter-increment也接受標(biāo)識(shí)符-整數(shù)對(duì),其中整數(shù)部分可以是0,也可以是負(fù)數(shù)或正數(shù)。與counter-reset的區(qū)別在于,如果counter- increment:中的標(biāo)識(shí)符-整數(shù)對(duì)少了一個(gè)整數(shù),則默認(rèn)為1而不是0。
舉例來說,,以下顯示了在網(wǎng)頁設(shè)計(jì)時(shí)用戶代理如何定義計(jì)數(shù)器生成有序列表傳統(tǒng)的1、2、3計(jì)數(shù)。
ol {counter-reset: ordered;}/* defaults to 0 */
ol li {counter-increment: ordered;}/* defaults to 1 */
另一方面,在網(wǎng)頁設(shè)計(jì)時(shí),創(chuàng)作人員可能希望從0向下計(jì),使列表項(xiàng)使用一種漸進(jìn)的負(fù)數(shù)體系,為此只獬稍作修改:
ol .{bounter-reset: ordered;}/* defaults to 0 */
ol li (counter-increment: ordered -1;}
列表的計(jì)數(shù)將是-1、-2、-3等等。如果將整數(shù)-1換成-2,列表的計(jì)數(shù)則是-2、-4、-6等等。