2012-08-23 49 views
1

不工作有了这个标记:后代选择在Internet Explorer 9

<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;} 

确实工作。

我得到不同的文档类型不同的行为: 与

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

第一种是强调了在FF,而不是IE8与:

的行为是洽中,仅第二李有风格。

我不明白这一点,因为我觉得我一直在使用这种选择器的年龄...为什么不第一个选择器它在IE9中工作?为什么第一个选择器不能与loose.dtd一起工作?

看到它在行动on this page

+0

你可以尝试以更合乎逻辑的方式呈现你的问题吗? test.htm上的源代码很奇怪! – BjarkeCK

+1

在此处发布您的代码*,否则如果演示/复制页面死亡或移动,则该问题在将来变得毫无意义且无益。 –

+0

@BjarkeCK我忘了添加标记,现在完成 – iKode

回答

3

id属性值是大小写敏感的。当你有id="shopNav"时,那么在CSS中你需要使用#shopNav而不是#shopnav

+0

oops一个错字...谢谢! – iKode

0

使用这样的:

#shopnav ul li.active 

或该

#shopnav * li.active