2012-09-27 47 views
0

很难解释的种类,所以这里是一些代码。由ID选择的链接中的文本颜色覆盖了不同ID的父链接颜色

所以我有这个CSS,这使得所有的链接一个橙色的颜色。它包含整个页面。

#pageContent a:link,a:visited, a:hover, a:active { 
    color: #EE4036; 
} 

然后,我有内pageContent ID某处ID sideMenu的元素,

#sideMenu a:link, a:visited, a:hover, a:active{ 
    color:#58595B; 

} 

的问题是,由于某种原因,sideMenu的给定链路的颜色覆盖pageContent的链接颜色为AREN链接” t sideMenu的孩子。

例如,如果我有

<div id="pageContent" > 
    <a>this text should be #EE4036</a> 
    <div id="sideMenu"> 
     <a>this text should be #58595B</a> 
    </div> 
</div> 

sideMenu的<a>文本内容将得到设置为颜色#58595B如预期,但这样会pageContent的,这是我不希望。

我对CSS有点新,所以觉得我错过了一些超级明显的规则,而谷歌根本没有帮助。那么,谁知道发生了什么事?

回答

9

您需要的前缀与ID的每个选择:

#sideMenu a:link, #sideMenu a:visited, #sideMenu a:hover, #sideMenu a:active { 
    color:#58595B; 
} 

目前,您的选择说比赛“链接,与ID元素的后代‘slideMenu’,已访问过的链接,链接,正在徘徊,并积极联系“。

基本上,当您使用逗号来创建group of selectors时,每个单独的选择器都是完全独立的。他们之间没有任何关系。

+0

@ gilly3 - 感谢语法高亮编辑。我希望它能更好地自动识别CSS。 –

+0

太棒了,谢谢。我知道这很简单!我会尽快选择你的答案,由于某种原因,它告诉我我需要等待7分钟。 – Michael

+0

@詹姆斯 - 我也是......看起来很奇怪,它不能自动工作,即使在像这样只被标记为“css”的问题上。没有歧义。 – gilly3

2

那么,你实际上重新定义了相同的规则。您必须每次写下#sideMenu#pageContent。它是:

#pageContent a:link, #pageContent a:visited, #pageContent a:hover, #pageContent a:active { 
    color: #EE4036; 
} 
#sideMenu a:link, #sideMenu a:visited, #sideMenu a:hover, #sideMenu a:active { 
    color: #58595B; 
} 

Voila。希望能帮助到你。

+0

这确实有帮助,但不幸的是其他人在你之前回答了它。给你一个upvote。 – Michael