IE不适用于动态加载的CSS

tyb*_*103 16 javascript css ajax internet-explorer

似乎IE(至少旧版本)不应用动态加载的CSS.如果您通过ajax将包含CSS的页面加载到"lightbox"或"colorbox"中,这可能是一个痛点.

例如,假设您的HTML页面有一个名为"taco"的div:

<style>#taco {color:green;}</style>
<div id="taco">Hola Mundo!</div>
Run Code Online (Sandbox Code Playgroud)

"Hola Mundo!" 由于CSS包含在原始HTML页面中,因此将为绿色.然后一些Javascript发生并将其附加到"taco":

<style>#taco {color:green;}</style>
<div id="taco">
  Hola Mundo!
  <style>#burrito {color:red;}</style>
  <span id="burrito">mmmm burrito</span>
</div>
Run Code Online (Sandbox Code Playgroud)

在除IE之外的所有浏览器中,burrito的字体将为红色.

那么有没有办法在IE中这样做?好像没有.

jer*_*oen 4

style标签仅允许在该head部分中使用。把它放在其他地方是无效的,与 IE 无关。

\n\n

更多信息

\n\n

顺便说一句,为了解决您的问题,如果您可以\xc2\xb4t将样式放入全局样式表中,您可以使用\'style\'属性来修改元素:

\n\n
<p style="...">\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者您可以使用iframe但随后您必须提供整个页面而不是几个标签。

\n

  • 没有人关心它是否无效。有用。即使在 IE 中(除非通过 ajax 使用,如果将其添加到头部仍然不起作用)。 (4认同)
  • &lt;style&gt; 在正文中确实有效。只是在 IE 中不是动态的...即使如此,头部中的 &lt;style&gt; 也不能在 IE 中动态工作 (2认同)