2014-04-09 12 views
1

我在不同的瀏覽器中出現模糊的CSS編譯問題。我想爲主頁上的主要新聞標題中的鏈接使用不同的顏色。CSS <a>在Chrome中有錯誤的顏色,但在資源管理器中,它沒事吧

一般來說,我用這種方式宣告鏈接:

a:visited 
{ 
    color: purple; 
} 
a :hover 
{ 
    color: aqua; 
} 

但mainNewsTitle鏈接我聲明這一點:

.mainNewsTitle a 
{ 
    color:white; 
} 
.mainNewsTitle a :visited 
{ 
    color:white; 
} 

我有這樣的代碼在CSHTML文件:

@if (Model.MainNews[0].Title.Length > 40) 
{ 
    <h2 id="mainNewsTitle1" class="mainNewsTitle"><a href="@Model.MainNews[0].Link" target="_blank">@Model.MainNews[0].Title.Substring(0, 40)...</a></h2> 
} 
else 
{ 
    <h2 id="mainNewsTitle1" class="mainNewsTitle"><a href="@Model.MainNews[0].Link" target="_blank">@Model.MainNews[0].Title</a></h2> 
} 

在Internet Explorer,它會顯示右側的鏈接 - 白色。 在谷歌瀏覽器中,它是藍色的,訪問後它是紫色的。

+3

我會從這裏刪除空格開始:'a:visited' - >'a:visited'。 IE意外地允許這個,但它實際上是無效的(或者至少這並不意味着你認爲它的意思)。 – GolezTrol

回答

1

刪除a :visited中的空格;它造成問題。有了空間,你就可以定位一個被訪問的孩子,而不是定位一個已經訪問過的鏈接。

.mainNewsTitle a { 
    color:white; 
} 

.mainNewsTitle a:visited { 
    color:white; 
} 
+0

是的你是對的。謝謝!我認爲,如果我寫空間或這>沒關係。因爲在MVC中他不會忽略CSS中的空格。 div .class1表示一些class1元素,它位於div內,但div.class1表示div,其類名稱爲「class1」。 – user3245590

+0

@ user3245590我編輯了我的答案已經重新:那個位:-) – TylerH

+1

你的第一個答案是正確的。 :-我在'.mainNewsTitle中有一個空格{color:white;}',它是藍色的。 – user3245590

2

css聲明中的空白是「後代組合子」。

From w3c doc

後代組合子是空白分開的 簡單選擇兩個序列。形式爲「A B」的選擇表示元素B 即一些祖先元素A.

您選擇內部a元素的任何懸停元件的任意後代。

要選擇你應該使用a:hover代替a :hovera:visited,而不是a :visited錨標記。

相關問題