2011-09-03 44 views
60

訪問時,必須禁用錨標記的顏色更改。我這樣做了:訪問時停用錨標記的顏色更改

a:visited{ color: gray } 

(鏈接在訪問前是灰色的)。但是,這是一種在鏈接訪問後明確聲明顏色的方式,這又是一種顏色變化。

如何禁止顏色變化的錨標記訪問時沒有做任何明確的顏色更改?

回答

60

你不能,你只能風格訪問狀態。

對於其他人發現這種情況,請確保您有他們在正確的順序:

a {color:#FF0000;}  /* unvisited link */ 
a:visited {color:#00FF00;} /* visited link */ 
a:hover {color:#FF00FF;} /* mouse over link */ 
a:active {color:#0000FF;} /* selected link */ 
+4

爲了真正分析它,不應該'a'是'a:link'嗎? –

+1

我想是的,儘管我很少這麼做。 –

+6

這不是俚語:http://en.m.wikipedia.org/wiki/Anal_retentiveness –

0

請刪除選擇器或將其設置爲與正常顯示的文本相同的顏色。

10

對於:hover覆蓋:visited,並確保:visited是一樣的初始顏色,:hover一定要來之後:visited

所以如果你想禁用顏色變化,a:visited必須在a:hover之前。就像這樣:

a { color: gray; } 
a:visited { color: orange; } 
a:hover { color: red; } 

要禁用:visited變化,你將與非僞類樣式是:

a, a:visited { color: gray; } 
a:hover { color: red; } 
+2

我看着這個錯誤,還是你正在做與報價中所說的完全相反的內容?根據W3Schools它是1)'a:link','a:visited' 2)'a:hover' 3)'a:active' –

139

如果你只是想錨的顏色保持不變,你可以利用錨的父元素繼承:

a, a:visited, a:hover, a:active { 
    color: inherit; 
} 

注意,不需要爲每個選擇器重複規則;只需使用逗號分隔的選擇器列表(順序對於僞僞元素來說是重要的)。此外,您還可以將僞選擇一類,如果你想選擇禁用特殊錨顏色:

.special-link, .special-link:visited, .special-link:hover, .special-link:active { 
    color: inherit; 
} 

你的問題只詢問有關的訪問狀態,但我認爲你的意思是所有的狀態。如果您想允許所有未訪問的顏色更改,則可以刪除其他選擇器。

+0

這很好,謝謝!作爲對其他人的一個提示,你可能需要添加!對顏色標籤來說很重要,以便它能夠根據你的網站中的其他內容進行正確採用:color:inherit!important; – Mmm

+1

在Chrome中,只會將鏈接文本呈現爲黑色。 – RajV

+0

有沒有辦法讓'a:link'成爲默認的鏈接顏色(通常是藍色)*並*有'a:visited'繼承而來,而不需要在任何地方硬編碼「藍色」? – rustyx

-3
a:visited { 
    text-decoration: none; 
} 

但它只會影響尚未被點擊的鏈接。

+1

這個問題涉及顏色,而不是文字修飾。 –

-2

您可以通過將a:linka:visited選擇器一起呼叫來解決此問題。並按照a:hover選擇器進行操作。

a:link, a:visited 
{color: gray;} 
a:hover 
{color: skyblue;}