以下CSS在Firefox下运行良好,但在IE浏览器下无效,为什么? 另外,我如何只使用直接在父元素下的元素受CSS影响?
CSS:
.box{font:24px;}
.box>div{font:18px}
.box>div>div{font:12px;}
HTML:
<div class="box">
level1
<div>
level2
<div> level3</div>
<div> level3</div>
</div>
<div>
level2
<div> level3</div>
<div> level3</div>
</div>
</div>
答案 0 :(得分:18)
Internet Explorer从版本7开始支持子选择器(>
),但仅在标准模式下支持。确保您使用的是a Doctype that triggers standards mode。
如果你的目标是IE6,那么你就不走运了。您需要依赖JS或使用后代选择器。
a>b { foo }
变为
a b { foo }
a * b { reverse-of-foo }
答案 1 :(得分:1)
IE6完全不支持子选择器,IE7只支持部分选择器。
遗憾的是,除了“解除”所有孙子孙女的定义外,没有办法做到这一点。答案 2 :(得分:-2)
我对你要找的东西可能不对,但这就是我要解决你问题的方法:
.box {font:24px;}
.box div {font:18px}
.box div div {font:12px;}
这适用于你的例子,但请注意,如果你有另一个带有div的.box,它们也会受到影响。