2012-07-31 40 views
0

我继承了一个非常大的CSS文件,我添加了一个特定id如下:什么可能导致CSS id链接的“border”属性被完全忽略?

#specialLink a, #specialLink a:link, #specialLink a:active, #specialLink a:visited 
{ 
    border:solid 1px #000000; 
    background-color:#CC0000; 
} 

然而,当我在一个链接中使用它,因为在<a id="specialLink" href="whatever.htm">Test Link</a>,它完全忽略上面的border属性,但尊重background-color属性。

我被引导认为CSS中的id标记具有最终优先级,那么可能是什么导致border属性被完全忽略?

+0

'id'不一定给予最终优先权。如果你添加'!important',它会起作用吗? – bhamlin 2012-07-31 18:42:19

+1

使用css样式检查器(firebug,chrome)查看边界声明中是否有重写声明 – 2012-07-31 18:44:14

+0

尝试#specialLink {css} – SRN 2012-07-31 18:45:18

回答

1

您的选择器不正确。您有:

#specialLink a {} 

这将匹配与该ID #specialLink后代元素的锚元素:

<div id="specialLink"> 
    <a href="#">Anchor</a> 
</div> 

你想要的是:

a#specialLink {} 

从而使选择器将匹配:

<a href="#" id="specialLink">Anchor</a> 
+0

由于#specialLink是唯一的,指定#specialLink是多余的。 – 2012-07-31 18:47:56

+0

对,'#specialLink'也足够了。我只是想更清楚地知道错误在选择器中。 – daGUY 2012-07-31 18:49:53

+0

工作!但是,我不得不专门使用'#specialLink {}'。 '#specialLink'不起作用。任何想法为什么? – ProgrammerGirl 2012-07-31 18:55:51

0

#specialLink a指ID为“specialLink”的包装元素中的A标签。

要设置链接的样式,您需要自行使用#specialLink,因为它已具有唯一的ID。

#specialLink { 
    ... 
}