偽類選擇器和偽元素選擇器才真正有些意思。利用這些選擇器,可以為網(wǎng)頁中不一定具體存在的結(jié)構(gòu)指定樣式,或者為某些元素(甚至是文檔本身)的狀態(tài)所指示的幻像類指定樣式。換句話說,會(huì)根據(jù)另外某種條件而非文檔結(jié)構(gòu)向文檔中的某些部分應(yīng)用樣式,而且無法通過研究文檔的標(biāo)記準(zhǔn)確地推斷出采用何種方式應(yīng)用樣式。
聽上去好像是在隨機(jī)地應(yīng)用樣式,不過并非如此。實(shí)際上,這里是根據(jù)某種無法提前預(yù)測(cè)的暫時(shí)條件來應(yīng)用樣式,不過,什么情況下將出現(xiàn)樣式實(shí)際上是明確定義的??梢赃@樣想:在一個(gè)賽事中,只要主場(chǎng)球隊(duì)得分,觀眾就會(huì)歡呼,在比賽中你并不知道球隊(duì)什么時(shí)候會(huì)得分,但是一旦得分,不出所料,觀眾就會(huì)大聲歡呼。盡管無法預(yù)測(cè)哪個(gè)時(shí)刻出現(xiàn)前因,但并不影響對(duì)后果的預(yù)測(cè)。
先來分析偽類選擇器,因?yàn)榫W(wǎng)頁瀏覽器對(duì)偽類選擇器提供了更好的支持,相應(yīng)地使用更廣泛。
我們來考慮錨元素(a),在HTML網(wǎng)頁和XHTML網(wǎng)頁中,錨元素會(huì)建立從一個(gè)網(wǎng)頁文檔到另一個(gè)網(wǎng)頁文檔的鏈接。這樣描述錨固然不錯(cuò),不過有些錨指示的是已經(jīng)訪問過的頁面,而另外一些則指示尚未訪問的頁面。只是看HTML標(biāo)記是無法區(qū)別二者的差別的,因?yàn)樵跇?biāo)記中所有錨看上去都一樣。要想?yún)^(qū)別哪些鏈接已經(jīng)訪問過,唯一的辦法就是將文檔中的鏈接與用戶的瀏覽歷史相比較。所以,實(shí)際上有兩種基本的錨類型:已訪問的和未訪問的。這些類型稱為偽類(pseudo-class),使用這些偽類的選擇器則稱為偽類選擇器(pseudo- class selector)。
為了更好地理解這些類和選擇器,下面來考慮瀏覽器如何處理鏈接。Mosaic協(xié)定指定未訪問頁面的鏈接為藍(lán)色,已訪問頁面的鏈接為紅色(在以前的瀏覽器中,如Internet Explorer,已訪問鏈接可能不是紅色而是紫色)。所以,如果可以向錨中插入類,使已經(jīng)訪問過的錨有一個(gè)類(如“visited”),就可以寫如下樣式來使這些錨變成紅色:
a.visited {color: red;}
<a href="http://www.w3.org/" class="visited">W3C Web site</a>
不過,這種方法要求每次訪問一個(gè)新頁面時(shí)都要修改錨的類,這種做法有些傻。與此不同,CSS定義了偽類,使已訪問頁面的錨就好像已經(jīng)有一個(gè)“visited”類一樣:
a:visited {color: red;}
現(xiàn)在,指向已訪問頁面的錨都會(huì)是紅色,甚至你不必為任何錨增加class屬性。注意規(guī)則中的冒號(hào)(:)。分隔a和visited的冒號(hào)是偽類或偽元素的“名片”。所有偽類和偽元素關(guān)鍵字前面都有一個(gè)冒號(hào)。
當(dāng)前文章標(biāo)題:什么是網(wǎng)頁偽類選擇器
當(dāng)前URL:http://51zuanshi.com.cn/news/wzzz/what-pseudo-class.html
下一篇:什么是鏈接偽類