Появляется, как будто IE (более старые версии, по крайней мере) не применяет CSS, который загружается динамично. Это может быть болевой точкой при загрузке страницы, содержащей CSS через ajax в "лайтбокс" или "палитру цветов".
Например, скажите, что Ваша страница HTML имеет названный "тако" отделения:
<style>#taco {color:green;}</style>
<div id="taco">Hola Mundo!</div>
"Hola Mundo!" будет зеленым, так как CSS был включен в исходную страницу HTML. Затем некоторый JavaScript происходит и добавляет это к "тако":
<style>#taco {color:green;}</style>
<div id="taco">
Hola Mundo!
<style>#burrito {color:red;}</style>
<span id="burrito">mmmm burrito</span>
</div>
Во всех браузерах кроме IE шрифт буррито будет красным.
Так существует ли способ сделать это в IE? Кажется, как будто нет.
Возможно, вы захотите начать использовать метаданные jQuery .CSS для подобных динамических изменений стиля.
$("#jane").css('color', '#0F0');
Или просто обычная Джейн Javascript:
document.getElementById['sally'].style.color = '#0F0';
РЕДАКТИРОВАТЬ:
Сделайте так, чтобы ваш ajax вводил это:
<div id="jane">
<div id="sally">Hi, I'm Sally!</div>
<script>document.getElementById['sally'].style.color = '#0F0';</script>
</div>
Или почему бы просто не вводить элементы со встроенными стилями, вычисленными на стороне сервера?:
<div id="jane">
<div id="sally" style="color:#0F0">Hi, I'm Sally!</div>
</div>
Тег стиля
разрешен только в разделе head
. Размещение его в другом месте просто недопустимо и не имеет ничего общего с IE.
Кстати , чтобы решить вашу проблему, если вы не можете поместить стили в глобальную таблицу стилей, вы можете использовать атрибут 'style' для изменения элементов:
<p style="...">
Или вы можете использовать iframe
, но тогда вам придется обслуживать всю страницу вместо нескольких тегов.