2014-04-09 13 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锚标记。

相关问题