CSS2.1定義了兩個(gè)只應用于超鏈接的偽類(lèi)。在網(wǎng)頁(yè)HTML和網(wǎng)頁(yè)XHTML 1.0及1.1中,超鏈接是有href屬性的所有a元素,在XML語(yǔ)言中,超鏈接則可以是任何元素,只要它作為另一個(gè)資源的鏈接。
:link
指示作為超鏈接(即有一個(gè)href屬性)并指向一個(gè)未訪(fǎng)問(wèn)地址的所有錨。注意,有些網(wǎng)頁(yè)瀏覽器可能會(huì )不正確地將:link解釋為指向任何超鏈接,包括已訪(fǎng)問(wèn)和未訪(fǎng)問(wèn)的超鏈接
:visited
指示作為已訪(fǎng)問(wèn)地址超鏈接的所有錨
第一個(gè)偽類(lèi)看上去有些多余。畢竟,如果一個(gè)錨尚未訪(fǎng)問(wèn)過(guò),那它肯定是未訪(fǎng)問(wèn)的鏈接,不是嗎?
如果是這樣,我們所需要的應該只是:
a {color:blue;}
a:visited {color:red;}
盡管這種格式看上去是合理的,但這確實(shí)還不夠。以上規則中,第一個(gè)規則不僅應用于未訪(fǎng)問(wèn)的鏈接,還會(huì )應用到以下錨:
<a name=" sect ion4 ">4. The Lives o£ Meerkats</a>
相應的文本就會(huì )變成藍色,因為如上所示,a元素與規則a{color:blue;}匹配。因此,為了避免將鏈接樣式應用到目標錨,要使用:link偽類(lèi):
a:link {color: blue;}/* unvisited links are blue */
a:visited {color: red;}/* visited links are red */
你可能已經(jīng)意識到了,:link和:visited偽類(lèi)選擇器在功能上與body屬性link和 vlink是等價(jià)的。假設一個(gè)網(wǎng)頁(yè)設計師希望所有未訪(fǎng)問(wèn)頁(yè)面的錨都是紫色,而所有已訪(fǎng)問(wèn)頁(yè)面的錨是銀色。在HTML 3.2中,這要如下指定:
<body link="purple" vlink="silver">
在CSS中,利用以下規則可以達到同樣的效果:
a:link {color:purple;}
a:visited {color: silver;}
當然,對于CSS偽類(lèi),不僅可以應用顏色,還可以應用更多樣式。假設你希望已訪(fǎng)問(wèn)鏈接為斜體,而且除了銀色外還有一條貫穿線(xiàn)
只需以下樣式就可以達到目的:
a:visited {color: silver; text-decoration: line-through; font-style: italic;}
現在有必要再來(lái)回顧類(lèi)選擇器,并說(shuō)明類(lèi)選擇器如何與偽類(lèi)結合。例如,假設你希望指向除了自己建設網(wǎng)站以外的外部網(wǎng)站資源的鏈接改變顏色。如果為每一個(gè)這樣的錨指定一個(gè)類(lèi),就很容易做到:
<a href="http://www.mysite.net/">My home page</a>
<a href="http://www.site.net/" class="external">Another home page</a>
要為外部鏈接應用不同的樣式,只需如下的一條規則:
a.external:link, a.external:visited {color: maroon;}
這個(gè)規則會(huì )使以上標記中的第二個(gè)錨變成紫紅色,而第一個(gè)錨仍保持為超鏈接的默認顏色(通常是藍色)。
這個(gè)一般語(yǔ)法也適用于ID選擇器:
a#£ooter-copyright:link{font-weight: bold;}
a#footer-copyright:visited {font-weight: normal;}
盡管:link和:visited非常有用,但它們是靜態(tài)的——第一次顯示之后,它們一般不會(huì )再改變文檔的樣式。CSS2.1中還有一些沒(méi)有這種靜態(tài)性的偽類(lèi),接下來(lái)將詳細說(shuō)明。
當前文章標題:什么是鏈接偽類(lèi)
當前URL:http://amzcoolest.com/news/wzzz/what-link-pseudo-classes.html