IE8 грешка с псевдо елементи

Изолирах странен проблем с IE8 по отношение на CSS :before и :after псевдо елементи. Проблемът възниква, когато зададете позицията на един псевдоелемент на абсолютна, а на другата на относителна; вижте следния пример:

<style type="text/css">
  div:before { content: ""; position: relative; }
  div:after { content: ""; position: absolute; }
</style>
<div>stuff</div>

IE8 се срива. Буквално. Няма грешка, нищо полезно - само страховитото „Internet Explorer спря да работи“ и опитът на Windows 7 да го рестартира. За да бъде ясно, грешката възниква при превключване към IE8 браузър и режим на изобразяване на IE9. Когато заредих примера в IE8 страницата на IETester, не възникна грешка.

Ще тествам това в действителен IE8 възможно най-скоро, но въпросът ми е: защо се случва това? Грешка в IE8 ли е? Може би страничен ефект от някакъв position бъг? Не трябва ли IE8 да изобразява псевдо елементи?


person Thomas Shields    schedule 20.02.2012    source източник


Отговори (2)


Да, това е странно. Успях да го накарам да работи, ако го направите float:left; на div:before

person romo    schedule 20.02.2012
comment
+1 това е полезна информация - но не отговаря напълно на въпроса ми. Какво става тук? - person Thomas Shields; 20.02.2012
comment
Единственото нещо, което мога да измисля е, че IE ще се опита да свърже position:relative; с нещо, което не е декларирано, и тъй като имаме :before настройка, той се опитва да го свърже с нещо, което не съществува, и го срива. Не мога да видя никакви грешки в моята, просто също се срива. - person romo; 20.02.2012
comment
ако имате предвид това, което мисля, че имате предвид: добавянето на position:relative; към съдържащия елемент не поправи нищо. - person Thomas Shields; 20.02.2012

Знам, че този въпрос е стар... но имах същия проблем и го поправих с "div::after" вместо "div:after"

person IMM0rtalis    schedule 24.05.2013