2014-01-22 96 views
0

我期望上面的规则覆盖第二个,但不是。为什么?试图覆盖规则

body div#wrap_all header#header div#header_main div.container nav.main_menu div.avia-menu ul:first-child > li a { 
    height: 50px !important; 
} 

#header_main .container, .main_menu ul:first-child > li a { 
    height: 88px; 
} 
+0

我几乎可以肯定第一条规则没有被应用。 –

+0

你可以使用这些规则发布一些代码吗?顺便说一句,尝试从第一条规则的开头删除“body div”,并​​在“header”和“#header”之间放置一个空格。 –

+0

@Unykvis wt是这个原因吗? – Anup

回答

0

尝试第二规则添加到第一行:

body div#wrap_all header#header div#header_main div.container nav.main_menu div.avia-menu  ul:first-child > li a, 
.main_menu ul:first-child > li a{ 
    height: 50px !important; 
} 

如果一切正常,这意味着没有施加否则它应该是压倒一切的第一个规则。

2

您应该计算出你的CSS规则的特殊性,以找出为什么一个被接管另一: http://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/

100每个ID,加10为每个属性,类或伪类,加 1每个元素的名称或伪元素

另外,使用!important标志应绝对保证它比你的第二个规则更具体:

一个!important声明的样式表的作者提供了一种 给出一个CSS值更多的重量比它自然有

如果这还没有的情况下我会想象,有一个style属性或第三方脚本挡道。

+0

中看到它,所以第一个更具体,所以它应该覆盖第二个..但是这不是我的情况。 – ziiweb

+0

正确。如果可能的话,我希望看到一个小提琴在行动,因为我无法想象任何情况下,第二个将出现在顶部,特别是给你!重要的标志。 – CodingIntrigue

+0

这里是jsfiddle:http://jsfiddle.net/xJ4EG/正如你所说的第二个没有被应用,但为什么在我的代码被应用? – ziiweb