2012-04-18 97 views
1

在下面的示例中,链接2出现白色并且不像预期的那样黑色如何设计链接2的颜色而不将其包装到容器标签中?嵌套选择器中的CSS样式链接颜色

.text a{ 
color:#FFF; 
} 


.black{ 
color:#000; 
} 

<div class="text"> 
<a href="#">Link 1</a> 
<a href="#" class="black">Link 2</a> 
</div> 

回答

3

你的第二选择需要比第一个覆盖它更具体:

.text a { 
color:#FFF; 
} 

.text a.black { 
color:#000; 
} 

<div class="text"> 
<a href="#">Link 1</a> 
<a href="#" class="black">Link 2</a> 
</div> 
+0

伟大的是我正在寻找的举措。 – user1209203 2012-04-18 12:04:23

0

它散发出来的白色,因为以前选择具有较高specificity。其中一种解决方案如下:

.black{ 
    color:#000 !important; 
} 

但是,如果使用太多,会导致复杂的问题。通常最好的解决方案是尝试并避免太多选择器。有一个选择器为链接设置默认样式,然后仅使用类来更改特定链接。例如:

a { 
    color: #fff; 
} 
.black { 
    color: #000; 
} 
+0

避免使用'!important'通常会更好,因为您应该旨在制作您的CSS以遵循级联。但是,这是有效的:) – easwee 2012-04-18 11:51:21

+0

你说得对,你的答案更好。 Upvoted。 – DisgruntledGoat 2012-04-18 11:52:08

0

原来的白色,因为第一选择是更具体的,即:获得具有类“文本”的元素的链接,而最后仅得到任何元素与类“黑色”。

您可以通过两种方式解决这个问题:

.text a.black { 
color:#000; 
} 

OR

.black{ 
    color:#000 !important; 
} 

在其中“重要”覆盖其他的规则被给予与类元素“黑”。

0

这里的工作解决方案,您只需将样式为黑色与ID而不是类:

.text a{ 
color:#FFF; 
} 


#black{ 
color:#000; 
} 

<div class="text"> 
<a href="#">Link 1</a> 
<a href="#" id="black">Link 2</a> 
</div> 
0

正如其他人所说,它出来的白色,因为您之前的“一个”标签选择器比更具体你的“黑人”班。

有两个选项:

更具体:

.text a{ 
color:#FFF; 
} 


.text a.black { 
color:#000; 
} 

<div class="text"> 
<a href="#">Link 1</a> 
<a href="#" class="black">Link 2</a> 
</div> 

或者,你可以我们的规则 “重要!”:

.text a{ 
color:#FFF; 
} 


.black{ 
color:#000!important; 
} 

<div class="text"> 
<a href="#">Link 1</a> 
<a href="#" class="black">Link 2</a> 
</div> 

我会强烈建议第一的方法,但在某些情况下,“重要的”可以是一个快速的修复,直到你找出真正的问题所在。不要滥用“!重要”规则,因为它会搅乱你的未来 - 请相信我!

希望这回答你的问题。祝你有美好的一天。

Michael。