CSS3之伪元素选择器和伪类选择器
偽類選擇器,和一般的DOM中的元素樣式不一樣,它并不改變?nèi)魏蜠OM內(nèi)容。只是插入了一些修飾類的元素,這些元素對(duì)于用戶來說是可見的,但是對(duì)于DOM來說不可見。偽類的效果可以通過添加一個(gè)實(shí)際的類來達(dá)到。
a:link|a:visited|a:hover|a:active在 CSS 定義中,a:hover?必須被置于?a:link?和?a:visited?之后,才是有效的,a:active?必須被置于?a:hover?之后,才是有效的。
?
?
由于狀態(tài)是動(dòng)態(tài)變化的,所以一個(gè)元素達(dá)到一個(gè)特定狀態(tài)時(shí),它可能得到一個(gè)偽類的樣式;當(dāng)狀態(tài)改變時(shí),它又會(huì)失去這個(gè)樣式。由此可以看出,它的功能和class有些類似,但它是基于文檔之外的抽象,所以叫偽類。
:focus /* 偽類將應(yīng)用于擁有鍵盤輸入焦點(diǎn)的元素。 */ :first-child /* 偽類將應(yīng)用于元素在頁面中第一次出現(xiàn)的時(shí)候。 */ :lang /* 偽類將應(yīng)用于元素帶有指定lang的情況。 */?
偽元素選擇器,偽元素的效果是需要通過添加一個(gè)實(shí)際的元素才能達(dá)到的。
/* 為某個(gè)元素的第一行文字使用樣式。 */ :first-line /* 為某個(gè)元素中的文字的首字母或第一個(gè)字使用樣式。 */ :first-letter /* 在某個(gè)元素之前插入一些內(nèi)容。 */ :before /* 在某個(gè)元素之后插入一些內(nèi)容。 */ :after?
?
結(jié)構(gòu)性偽類選擇器
:root()選擇器,從字面上我們就可以很清楚的理解是根選擇器,他的意思就是匹配元素E所在文檔的根元素。在HTML文檔中,根元素始終是<html>。:root選擇器等同于<html>元素。
:not()選擇器稱為否定選擇器,和jQuery中的:not選擇器一模一樣,可以選擇除某個(gè)元素之外的所有元素。
:empty()選擇器表示的就是空。用來選擇沒有任何內(nèi)容的元素,這里沒有內(nèi)容指的是一點(diǎn)內(nèi)容都沒有,哪怕是一個(gè)空格。
:target()選擇器來對(duì)頁面某個(gè)target元素(該元素的id被當(dāng)做頁面中的超鏈接來使用)指定樣式,該樣式只在用戶點(diǎn)擊了頁面中的超鏈接,并且跳轉(zhuǎn)到target元素后起作用。
:first-child()選擇器表示的是選擇父元素的第一個(gè)子元素的元素E。簡單點(diǎn)理解就是選擇元素中的第一個(gè)子元素,記住是子元素,而不是后代元素。
:nth-child()選擇某個(gè)元素的一個(gè)或多個(gè)特定的子元素。
<!DOCTYPE html> <html><head></head><style type="text/css"> div p:nth-child(n){color:red;}div p:nth-child(2n){color:yellow;}</style><body><div><p>111</p><p>222</p><p>333</p><p>444</p><p>555</p></div></body> </html>
:nth-last-child()從某父元素的最后一個(gè)子元素開始計(jì)算,來選擇特定的元素。
:nth-of-type(n)選擇器和:nth-child(n)選擇器非常類似,不同的是它只計(jì)算父元素中指定的某種類型的子元素。當(dāng)某個(gè)元素中的子元素不單單是同一種類型的子元素時(shí),使用:nth-of-type(n)選擇器來定位于父元素中某種類型的子元素是非常方便和有用的。
?
:only-child表示的是一個(gè)元素是它的父元素的唯一一個(gè)子元素。
?
CSS3中的偽元素
CSS3對(duì)偽元素進(jìn)行了一定的調(diào)整,在以前的基礎(chǔ)上增加了一個(gè):
也就是現(xiàn)在變成了::first-letter,::first-line,::before,::after
另外還增加了一個(gè)::selection
?
在css3中,已經(jīng)明確規(guī)定了偽類用一個(gè)冒號(hào)來表示,而偽元素則用兩個(gè)冒號(hào)來表示。
?
::first-line選擇元素的第一行,比如說改變每個(gè)段落的第一行文本的樣式,我們就可以使用這個(gè)
::before和::after這兩個(gè)主要用來給元素的前面或后面插入內(nèi)容,這兩個(gè)常用"content"配合使用,見過最多的就是清除浮動(dòng)
<!DOCTYPE html> <html><head></head><style type="text/css"> .test:before{content:"Hello";}.test.after{clear:both;}</style><body><div class="test"></div></body> </html>::selection用來改變?yōu)g覽網(wǎng)頁選中文的默認(rèn)效果
?
UI狀態(tài)元素偽類選擇器
E:checked{attribute} 匹配所有用戶界面(form表單)中處于選中狀態(tài)的元素
E:enabled{attribute} 匹配所有用戶界面(form表單)中處于可用狀態(tài)的元素
E:disabled{attribute} 匹配所有用戶界面(form表單)中處于不可用狀態(tài)的元素
E::selection{attribute} 匹配元素中被用戶選中或處于高亮狀態(tài)的部分
?
目標(biāo)偽類
E:target{attribute} ? 匹配相關(guān)URL指向的元素
總結(jié)
以上是生活随笔為你收集整理的CSS3之伪元素选择器和伪类选择器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSS 伪类与伪元素
- 下一篇: CSS 基本样式