2012-08-23 51 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