CSS當(dāng)中,經(jīng)常使用的一個(gè)屬性是list-style,它能夠控制列表項(xiàng)的樣式,例如點(diǎn)號(hào)、數(shù)字、字母等。但是有時(shí)候我們會(huì)遇到這樣的問(wèn)題:當(dāng)列表項(xiàng)往上換行后,數(shù)字或字母變成了1,2,3或A,B,C等,而我們希望它們能夠保持原有的格式不變,例如1.a或A.1等。
這時(shí)候,我們需要使用到CSS中的counter-reset和counter-increment屬性。counter-reset可以用于重置計(jì)數(shù)器,而counter-increment則是用于增加計(jì)數(shù)器。通過(guò)這兩個(gè)屬性,我們可以自定義計(jì)數(shù)器名稱,并根據(jù)我們的需要進(jìn)行計(jì)數(shù)。
ul { counter-reset: my-counter; list-style: none; } li:before { counter-increment: my-counter; content: counter(my-counter) ". "; }
上面的代碼中,我們首先為ul元素設(shè)置了counter-reset屬性,將計(jì)數(shù)器名稱設(shè)置為my-counter,并將list-style設(shè)置為none,去除了默認(rèn)的列表樣式。然后,在每個(gè)li元素的前面使用:before偽元素,使用counter-increment屬性來(lái)增加計(jì)數(shù)器,使用content屬性來(lái)顯示計(jì)數(shù)器和一個(gè)點(diǎn)號(hào)。
這樣做的結(jié)果就是,不管li元素在頁(yè)面中的位置如何改變,計(jì)數(shù)器始終按照我們的定義進(jìn)行計(jì)數(shù),并保持原有的格式不變。