2012-10-20 93 views
3

我試圖在IE8上使用:last-child,但在閱讀了關於此的幾個線程後,確定它只是沒有發生。所以 - 我去下一個最好的途徑,這是使用jQuery對last-child類追加與CSS,執行以下操作:IE8:未使用jQuery選擇器後

$('.section-header > span:last-child').addClass('last-child'); 

這確實增加了在IE8適當的類。但是,當我開始設計風格時,它似乎並不奏效。這是在網站上的一些地方明顯,located here(相對於Chrome等實際體面的瀏覽器):

  • 頂級導航,而不是<li>項目
  • #top-grid箭頭不添加刪除最後border-right財產(使用:before:after
  • .section-header不施加padding-left我爲兩個:last-child.last-child(與jQuery完成)
  • 日曆指定,在不添加p邊框顏色到選定的標籤

所以 - 顯然有不少區域的不一致 - 我不是真的在尋找一個「這裏是你如何修復每一個單獨的」,更多「這是一個你失蹤的概念關於IE8「。我已經嘗試過聲明一個文檔類型(另一個線程提到過),但幾個小時後,你開始瘋狂地開車:)我真的很感激任何微妙的方向。謝謝!

+0

看看Selectivizr,它應該添加最後一個孩子,其中包括IE6-8 http://selectivizr.com/ –

+0

@Rick Calder:IE8已知有':最後一個孩子的問題:即使選擇了Selectivizr:( – BoltClock

+0

)該死的......不知道,呃,我認爲它至少應該是「應該」 –

回答

3

問題是,您將:last-child.last-child選擇器分組在同一規則集中。這會導致IE8忽略整個規則集,因爲:last-child部分,這意味着它也會忽略您的.last-child部分。

由於您使用jQuery反正添加的類別,你可能也刪除您選擇的:last-child一部分,有它在所有的瀏覽器。

或者,如果您希望禁用腳本的瀏覽器查看您的:last-child規則,則必須拆分選擇器併爲每個選擇器複製樣式規則。

+0

哇 - 這正是問題所在。很好知道未來(以及未來,我的意思是,直到IE8死亡緩慢痛苦的死亡)。非常感謝你! – Zach

+1

其他瀏覽器通常具有相同的行爲,當他們遇到不支持的選擇,因爲它是規範的一部分,這包括前綴。小心! – BoltClock