摘要:前面介紹過(guò)里的和這兩個(gè)偽元素,以及相關(guān)的用法,這篇將針對(duì)搭配計(jì)數(shù)器進(jìn)行一些有趣的應(yīng)用,相信熟練之后搞不好很好玩也說(shuō)不定。使用語(yǔ)法計(jì)數(shù)器名稱(chēng),分隔字,了解原理之后,透過(guò)和的交互應(yīng)用,就可以做出頗具特色的列表效果。
前面介紹過(guò)CSS里的::before和::after這兩個(gè)偽元素,以及content相關(guān)的用法,這篇將針對(duì)content搭配counter(計(jì)數(shù)器)進(jìn)行一些有趣的應(yīng)用,相信熟練之后搞不好很好玩也說(shuō)不定。
counter基本用法在CSS里頭,counter是個(gè)很有意思的功能,最常見(jiàn)得就是如果我們使用list清單,樣式選擇decimal十進(jìn)制,當(dāng)清單變多的時(shí)候數(shù)字也會(huì)跟著增加,底層貌似就是使用counter來(lái)做的,也因?yàn)閏ounter所產(chǎn)生的數(shù)值并不存在于網(wǎng)頁(yè)的元素內(nèi),所以如果我們要在清單元素之外使用,就必須透過(guò)::before或::after的content來(lái)實(shí)現(xiàn)。
counter最的基本用法一定要有一個(gè)父元素和子元素(類(lèi)似list的原理,使用ul包著li),所以長(zhǎng)相會(huì)類(lèi)似下面這段html:
鋼鐵人 美國(guó)隊(duì)長(zhǎng) 雷神索爾
在CSS里頭,先針對(duì)div父元素使用counter-reset:num;進(jìn)行計(jì)數(shù)器歸零的設(shè)置,里面num是計(jì)數(shù)器累加數(shù)值的變數(shù),接著可以在span::before里面看到counter-increment:num;這一段,這段的作用是把num累加上去,預(yù)設(shè)數(shù)值為加1,接著就透過(guò)content顯示出來(lái)。
計(jì)數(shù)器預(yù)設(shè)的顯示語(yǔ)法為:counter(計(jì)數(shù)器名稱(chēng),list-style-type)
div{ counter-reset:num; } span{ display:block; } span::before{ counter-increment:num; content:counter(num) ". "; }
透過(guò)指定一開(kāi)始counter-reset的起始數(shù)值,還有counter-increment累加的間隔數(shù)值,就可以做出從某個(gè)數(shù)值開(kāi)始或只顯示偶數(shù)、奇數(shù)的效果。
div{ counter-reset:num 3; } span{ display:block; } span::before{ counter-increment:num 2; content:counter(num) ". "; }
如果要更換數(shù)字的樣式,也可以透過(guò)計(jì)數(shù)器的第二個(gè)設(shè)定值list-style-type來(lái)更改,下面的例子就是將樣式更改為georgian。
div{ counter-reset:num; } span{ display:block; } span::before{ counter-increment:num; content:counter(num, georgian) ". "; }counter進(jìn)階用法
除了指定單一個(gè)變數(shù)外,counter也可以同時(shí)指定多個(gè)變數(shù),例如下面這段HTML,有三個(gè)類(lèi)別在里面,我分別用span、i和b來(lái)分類(lèi)。
鋼鐵人 美國(guó)隊(duì)長(zhǎng) 雷神索爾 宙斯盾局 神鬼局 神經(jīng)局 九頭蛇 九頭牛 九頭豬
CSS一開(kāi)始counter-reset可以指定多個(gè)變數(shù),透過(guò)一個(gè)空白字元分隔,如果空白字元后面接著數(shù)字則是起始值,沒(méi)有數(shù)字預(yù)設(shè)為0,當(dāng)這樣設(shè)定之后,就可以看到不同類(lèi)別的數(shù)字代號(hào)就不同。
如果遇到了巢狀結(jié)構(gòu),需要一層層的展開(kāi)(例如:1 > 1.1 > 1.1.1),采用上述的作法可能就會(huì)復(fù)雜許多,好在counter還提供了另外一個(gè)counters的功能,目的就是來(lái)解決巢狀結(jié)構(gòu)的麻煩事,在開(kāi)始前可以先看看透過(guò)ul和li組合的清單長(zhǎng)相:
傳統(tǒng)的清單如果將list-style設(shè)為decimal,同樣可以具備數(shù)字接續(xù)的功能,但相對(duì)來(lái)說(shuō)要做一些特殊變化就辦不到了。
li{ list-style:decimal; }
透過(guò)content和counters的搭配,我們就可以告別預(yù)設(shè)值的困擾,甚至可以在不使用清單ul和li的狀況下,實(shí)現(xiàn)和清單一模一樣的效果,舉例來(lái)說(shuō),我們純粹透過(guò)div模擬一個(gè)清單的長(zhǎng)相(狀態(tài)仍然必須是有父元素和子元素的概念),里面的樣式b就等于是ul,樣式a就等于是li:
第一層第二層第三層第三層第三層第二層第二層第一層第二層第二層
由于b的外層沒(méi)有東西,所以一開(kāi)始要把body和b都進(jìn)行counter reset的動(dòng)作,接著透過(guò)counters的使用,讓計(jì)數(shù)器的數(shù)值可以一個(gè)接著一個(gè)放進(jìn)去,如此一來(lái)就可以做到原本清單不容易實(shí)現(xiàn)的效果了。
counters使用語(yǔ)法:counters(計(jì)數(shù)器名稱(chēng),分隔字,list-style-type)
body, .b{ counter-reset:c; } .a::before{ content:counters(c, ".") ":"; counter-increment:c; } div{ margin-left:10px; }
了解原理之后,透過(guò) ::before 和 ::after 的交互應(yīng)用,就可以做出頗具特色的列表效果。
body, .b{ counter-reset:c; } .a{ box-sizing:border-box; position:relative; line-height:40px; } .a .a{ padding-left:30px; } .a::after{ content:""; box-sizing:border-box; display:inline-block; position:absolute; z-index:-1; top:0; left:0; width:100%; height:40px; margin-left:30px; box-shadow:inset 0 2px #666; background:#eee; } .a::before{ content:counter(c, upper-roman); counter-increment:c; display:inline-block; width:30px; height:40px; background:#666; color:#fff; text-align:center; margin-right:5px; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/54888.html
摘要:偽元素被當(dāng)做的樣式來(lái)進(jìn)行展現(xiàn),用法和普通的元素用法是一樣的。中的偽元素使用個(gè)冒號(hào),在中,為了區(qū)分偽類(lèi)和偽元素,規(guī)定偽元素使用個(gè)冒號(hào)。偽元素的特點(diǎn)優(yōu)點(diǎn)不占用節(jié)點(diǎn),減少節(jié)點(diǎn)數(shù)。不僅塊級(jí)元素可以設(shè)置偽元素,大部分行級(jí)元素也可以。 1 什么是偽元素? CSS 在渲染文檔的時(shí)候,偽元素可以通過(guò) css 給 HTML 添加一個(gè)元素(叫標(biāo)簽也行),這個(gè)元素在文檔樹(shù)中是找不到的。偽元素被當(dāng)做 CSS ...
摘要:前面介紹過(guò)里的和這兩個(gè)偽元素,以及相關(guān)的用法,這篇將針對(duì)搭配計(jì)數(shù)器進(jìn)行一些有趣的應(yīng)用,相信熟練之后搞不好很好玩也說(shuō)不定。使用語(yǔ)法計(jì)數(shù)器名稱(chēng),分隔字,了解原理之后,透過(guò)和的交互應(yīng)用,就可以做出頗具特色的列表效果。 前面介紹過(guò)CSS里的::before和::after這兩個(gè)偽元素,以及content相關(guān)的用法,這篇將針對(duì)content搭配counter(計(jì)數(shù)器)進(jìn)行一些有趣的應(yīng)用,相信熟練...
摘要:前言繼上篇魔法堂稍稍深入偽類(lèi)選擇器記錄完偽類(lèi)后,我自然而然要向偽元素伸出魔掌的啦。和的注意事項(xiàng)默認(rèn)必須設(shè)置屬性,否則一切都是無(wú)用功默認(rèn),就是和的內(nèi)容無(wú)法被用戶(hù)選中的偽元素和偽類(lèi)結(jié)合使用形如。 前言 ?繼上篇《CSS魔法堂:稍稍深入偽類(lèi)選擇器》記錄完偽類(lèi)后,我自然而然要向偽元素伸出魔掌的啦^_^。本文講講述偽元素以及功能強(qiáng)大的Contet屬性,讓我們可以通過(guò)偽元素更好地實(shí)現(xiàn)更多的可能! ...
摘要:狀態(tài)偽類(lèi)是基于元素當(dāng)前狀態(tài)進(jìn)行選擇的。在與用戶(hù)的交互過(guò)程中元素的狀態(tài)是動(dòng)態(tài)變化的,因此該元素會(huì)根據(jù)其狀態(tài)呈現(xiàn)不同的樣式。單冒號(hào)用于偽類(lèi),雙冒號(hào)用于偽元素。可以通過(guò)對(duì)父元素添加偽類(lèi)撐開(kāi)父元素高度,因?yàn)榫褪瞧渥詈笠粋€(gè)子元素。 css選擇器常見(jiàn)包括id(#id)、標(biāo)簽(tag)、class(.class)、屬性[attr=attrval]等,還包括偽元素和偽類(lèi)選擇器。正確的利用偽元素和偽類(lèi)能...
閱讀 3279·2021-11-22 14:44
閱讀 1124·2021-11-16 11:53
閱讀 1279·2021-11-12 10:36
閱讀 715·2021-10-14 09:43
閱讀 3708·2019-08-30 15:55
閱讀 3409·2019-08-30 14:14
閱讀 1747·2019-08-26 18:37
閱讀 3424·2019-08-26 12:12