2009-06-18 62 views
0

UDPATE 我是用Ajax響應沿着通過。好像IE不喜歡「新」的CSS ...如果放在樣式表或初始頁面請求,做工精細...Internet Explorer:在tablerow上設置css類?

Internet Explorer中似乎並沒有對tablerows設置類反應。它是否正確?如果是的話,是否有解決方法?或者我做錯了什麼?

<style type="text/css"> 
    table tr.red td {background-color:red;} 
</style> 
<table> 
    <tr class="red"> 
     <td>test</td> 
     <td>test</td> 
    </tr> 
    <tr> 
     <td>test</td> 
     <td>test</td> 
    </tr> 
</table> 
+1

哪個版本的IE?我沒有在IE7中發現任何錯誤 – rahul 2009-06-18 12:11:15

+1

IE8 WORK FINE !! – 2009-06-18 12:16:24

+0

我懶得去查看它,但我認爲這是一個IE6錯誤,IIRC。 – 2009-06-18 12:31:48

回答

2

我看不出有什麼理由不應該這麼做。

也許是其他選擇有更多的特異性和覆蓋那個風格。也許JS插入一個style屬性。也許你桌子的背景已經變紅了,你不會注意到它。有很多原因。

+0

我同意...這應該在所有瀏覽器中工作得很好。我敢打賭,另一種風格是衝突的。 – Alex 2009-06-18 13:06:45

1

您是否使用了有效的doctype,或者是IE嘗試怪癖模式呈現?

0

這是(一次)的Internet Explorer正確地玩遊戲的HTML。樣式表只應出現在文檔的<頭>中,所以稍後使用AJAX添加它們是無效的。最好的解決方案是在你的主要樣式表中添加你的規則。你可能會事先知道你所有的樣式規則,所以把它們放在你的樣式表中是有道理的 - 不要覺得你需要錯過它們,因爲你最初並沒有使用它們。

如果你真的需要與AJAX風格加載,這將是更好的使用JavaScript應用它們(這是確定使用JavaScript在這種情況下,你知道用戶擁有JavaScript作爲他們」已經通過AJAX獲得內容)或內聯樣式(使用樣式屬性)。 jQuery提供了許多用於處理CSS的有用函數,所以我可以看看 - 但我強烈建議儘可能將樣式表中的所有樣式放在頭部。