IE7-8中根本没有应用CSS类

时间:2011-09-20 20:16:49

标签: html css internet-explorer css-selectors

<!DOCTYPE html>已设置,html5shim.js已包含在每页的<head>中。

我有CSS:

.height_fix_container > * { margin:0; background:#fff url(../images/bg.jpg) top left no-repeat; min-height: 400px; }
.height_fix_container > *:first-child { background:#fff; } /*Good eye! But the problem still exists*/

...正在页面中间应用于此代码:

...
<div class="height_fix_container">
    <div>Content box 1</div>
    <div>Content box 2</div>
</div>
...

在IE7和8以外的每个浏览器中,CSS选择器运行良好。但是,在IE Content box 1中识别选择器,但Content box 2完全忽略它。我正在使用IE中内置的开发人员工具进行检查。

为什么会发生这种情况?

4 个答案:

答案 0 :(得分:3)

在IE中,您需要声明DOCTYPE才能识别第一个子选择器。

<!DOCTYPE .......>

你也错过了第二类定义中'fff'的#infront。它根本不会影响代码,只是一种语法编辑。

http://www.w3schools.com/cssref/sel_firstchild.asp

答案 1 :(得分:1)

IE7与:first-child非常相似,可能会在*之前窒息。

也许您可以在工作表中添加其他样式:

 .height_fix_container > div:first-child { background:#fff; } 

未测试

答案 2 :(得分:1)

您的信息页显示在Quirks Mode中。你的描述和CSS让我非常肯定。

最可能的原因是您没有有效的doctype作为第一行。加上这个:

<!DOCTYPE html>

如果你已经有了doctype,还有其他的东西会导致Quirks模式。

解决此问题后,background:fff将不再有效。您需要background:#fff#很重要。

答案 3 :(得分:0)

http://jsfiddle.net/a256R/ - 类似的选择器 - 在IE7和IE8中工作(第一个div是绿色,第二个是红色)。问题出在其他地方(背景图片网址,其他规则等)。