2009-06-18 63 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的有用函数,所以我可以看看 - 但我强烈建议尽可能将样式表中的所有样式放在头部。