当我们在IE7中使用Javascript渲染动态元素时,不会应用CSS样式。当我们使用Web Developer工具栏查看页面时,不会显示动态元素。页面在Firefox,Chrome和Safari中呈现正常。
IE7无法将CSS样式应用于动态创建的元素吗? IE8正确呈现动态元素。
这个问题适用于IE8,因为我们使用meta标签强制IE8以IE7模式呈现。
谢谢!
答案 0 :(得分:11)
我们发现了问题:我们不需要在新元素上使用setAttribute('class','cssClass'),而是使用setAttribute('className','cssClass'),其中'cssClass'是一些用户定义的CSS类。
当FF处理'class'属性时,IE会窒息,因为'class'是Javascript中的特殊关键字。因此,您必须使用'className'作为属性名称。
感谢大家的回复!
答案 1 :(得分:1)
我认为IE7(即IE8加载为7)正在加载CSS样式,并且仅使用适用于文档结构和加载时间的样式。也许您可以通过在动态加载的内容中包含另一个标记来强制重新加载样式表。
快问:您使用的是严格的DOCTYPE吗?他们说了here关于需要特别使用严格DOCTYPE与IE7的问题。它位于概述部分下方。
小心: 如果您从一开始就没有使用Strict,那么它会将您的布局丢弃。但无论如何我会建议使用Strict,因为从长远来看,它会让你的生活变得更轻松。只需在切换后整理你的布局,你就是A 远离。