не могу помочь
ел ошибку в IE9, но поиск в ней не помог найти решение.
Следующее прекрасно работает в FF 3 + 4, Chrome, Opera и даже IE8, но не в IE9.
HTML:
<div class="outer">
<p class="inner">Lorem ipsum dolor</p>
</div>
CSS:
div p {
font-size: 1.2em;
}
div p:after {
content: " sit amet";
}
div p:after {
font-size: 1.3em;
}
div.outer p:after,
div p.inner:after {
font-size: 3em;
}
"Сит Амет" этоогромный в IE9, как кажется, снова и снова умножает размер шрифта. Невозможно перезаписать его с помощью «! Important» или других средств повышения специфичности (как, например, «div.outer» уже должен это делать). Даже кажется что получитсяумножается в пределах одной и той же декларациит.е.div.outer p:after, div p.inner:after
не умножит на 3, а на 9!
(Обратите внимание, что «внутренние» и «внешние» классы здесь не нужны. То же самое происходит, еслиdiv p {}
опять и опять. Но это имеет смысл только с классами в качестве реального примера.)
Вот тестовая страница:http://dl.dropbox.com/u/4667354/temp/ie9-bug.html
Есть ли решение?
Редактировать:
Чтобы выяснить два недоразумения:
Ошибкане обычное поведение, когда дочерние элементы умножают размер шрифта своего родителя, когдаem
используются. Ошибка в том, чторазмеры шрифта в сгенерированном контенте не могут быть перезаписаны и будет умножаться в любом случае при попытке. То есть установка размера шрифта вdiv p:after
однажды работает, ноустановка его снова умножает вместо перезаписи.Чтобы лучше понять, в чем проблема (если у вас нет IE9 под рукой), вот два скриншота тестовой страницы:в IE8 и любом другом современном браузере а такжев IE9.