2012-02-09 60 views
5

我不能讓不透明度爲一個工作:訪問鏈接在Firefox或IE不透明度:參觀

如果我設置的背景色:參觀它會正常工作,但opactity將不設置。

任何想法?

這裏是我的CSS:

a.photo 
{ 
    display: inline-block; 
} 
a.photo img 
{ 
    border: 1px solid #C8C8C8; 
    background-color: #ffffff; 
} 
a:hover.photo img, 
a:active.photo img { 
    background-color: #FF2D59; 
    border: 1px solid #FF2D59; 
} 
a:visited.photo img 
{ 
    opacity: 0.4; 
    filter: alpha(opacity=40); /* For IE8 and earlier */ 
} 
a.small img 
{ 
    width: 80px; 
    height: 80px; 
    padding: 6px; 
} 


<a href="#" class="photo small"> 
    <img src="http://www.w3schools.com/css/klematis.jpg" alt="small photo hyperlink" /> 
</a> 

我不覺得有什麼不對的CSS的順序,監守如果我添加背景顏色,它工作得很好:

a:visited.photo img 
{ 
    opacity: 0.4; 
    filter: alpha(opacity=40); /* For IE8 and earlier */ 
    background-color: Gray; 
} 
+3

難道不該'a.photo:visited'? – 2012-02-09 17:59:44

+2

@Joel埃瑟頓:類和僞類可以以任意順序排列,所以'一個:visited.photo'是好的。 – BoltClock 2012-02-09 18:07:58

回答

9

SEC7115:走訪:鏈接樣式只能由顏色不同。有些樣式不適用於:visited。

這從IE瀏覽器的開發人員工具控制檯。我很確定Firefox的顯示類似的錯誤。

對不起。那裏可以做的不多。

+0

你知道嗎,我從來沒有真正明白過這一點。當然,你可以閱讀computedStyle.color並找到訪問過的鏈接?我不知道... – 2012-02-09 18:10:51

+0

如果還有其他解決方案,我不會回答這個問題。 – 2012-02-10 19:45:59

+0

看起來不太可能。 'document.querySelectorAll(「:參觀」)'不管是否存在已訪問鏈接的返回一個空列表,所以沒有發現這些方式。我會嘗試搜索顏色樣式。 – 2012-02-10 19:49:23

3

自2010年以來,Mozilla的瀏覽器限制了可用於風格訪問過的鏈接的CSS屬性: - 顏色, - 背景色, - 邊界 - * - 色 - 輪廓色 - 和顏色填充和筆畫屬性的一部分。

對於樣式已訪問鏈接的任何其他部分,對於未訪問鏈接的樣式來代替。此外,您可以在上面更改屬性的列表中,您將無法設置RGBA()或HSLA()色或透明他們。

來源: http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/