后代选择器无法在Internet Explorer 9中工作

时间:2012-08-23 21:37:57

标签: html css

使用此标记:

    <div id="shopNav">
        <ul>
            <li class="active">
                <a href="#">test 1</a></li>

        </ul>
    </div>  
    <ul>
        <li class="active1"><a href="#">test</a></li>

    </ul>

这不起作用

#shopnav li.active {
    border:1px solid red !important;    
}

但:

.active {border:1px solid red !important;}

确实有效。

我使用不同的doc类型获得不同的行为: 与

<!DOCTYPE PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

第一个在FF中突出显示,而不是ie8,并且:     

行为是一致的,因为只有第二个li被赋予了风格。

我根本不理解这一点,因为我觉得我已经使用了这种选择器多年......为什么第一个选择器在IE9中不起作用?为什么第一个选择器不能与loose.dtd一起工作?

在行动on this page

中查看

2 个答案:

答案 0 :(得分:3)

id属性值区分大小写。如果你有id="shopNav",那么在CSS中你需要使用#shopNav,而不是#shopnav

答案 1 :(得分:0)

使用它:

#shopnav ul li.active

或者

#shopnav * li.active