2014-08-29 73 views
2

爲什麼以下代碼不工作?CSS訪問鏈接更改背景顏色

a:visited { 
    background-color: yellow; 
} 

摘自:http://www.w3schools.com/cssref/sel_visited.asp

我所試圖做的是有兩個不同點指向,但覆蓋同一個盒子兩個環節。如果任何一個鏈接被訪問,我想以某種方式得到通知。請更改背景顏色或邊框顏色。

例如:

<a id="linkA" href="http://www.w3schools.com/"> 
    <a id="linkB" href ="http://www.w3schools.com/html/"> 
    <div id="bix">Change content if either link is visited</div> 
</a> 
</a> 

CSS:

#bix { 
    border: 3px solid orange; 
} 

#linkA #bix { 
    border: 3px solid green; 
} 

#linkB #bix { 
    border: 3px solid red; 
} 

問題是,當您檢查代碼,#LinkA不含#LinkB。如何使#LinkB在#LinkA內,或以其他任何方式使#bix對#LinkA或#LinkB的訪問作出反應。

+0

@StephenP是的,這是我注意到的。我無法弄清楚爲什麼。所以我想沒有辦法有很多鏈接下的子鏈接。 – C3PO 2014-08-29 21:47:12

+0

可能的重複[爲什麼不是這個:visited css style work?](http://stackoverflow.com/questions/8331688/why-doesnt-this-avisited-css-style-work) – 2014-08-30 00:21:14

回答

1

在HTML語法中禁止嵌套錨標籤,因此爲什麼它們不顯示。

正如@beautifulcoder建議的那樣,改變內容本身。

a:visited > #bix { color: red; } 
+0

這就是問題,嵌套標籤。我想沒有辦法解決這個問題,我將不得不找出另一種方法。 – C3PO 2014-08-29 21:55:03

1

嘗試:

a:visited + #bix { ... } 

你必須改變的實際內容。

1

創建一個鏈接將

<a href="http://www.example.com">This Will Be The Link</a> 

然後,當這個被訪問的CSS來改變顏色會

a:visited{ 
    color:blue;/*will change text colour*/ 
    background-color:yellow;/*will change background colour*/ 
} 

兩個位置的正確方法,因爲它可以出現多餘的我只去一個地點?

+0

還有其他的指向這些位置的頁面上的鏈接。 – C3PO 2014-08-29 21:53:22