Почему IE10 требует наличия правила p: hover {} для переходов для работы с псевдоэлементом?
HTML:
<p>Hover</p>
CSS:
p::after {
content: " here";
transition: all 1s;
}
p:hover::after {
font-size: 200%;
color: red;
}
Живая демоверсия: http://jsfiddle.net/SPHzj/13/ (работает в Firefox и Chrome)
Как видите, янастроили CSS переходы на::after
псевдоэлемент абзаца. Затем при наведении абзаца на псевдоэлемент, которые переходят, применяются два новых стиля.
Это работает в Firefox и Chrome, но не в IE10. Мое рассуждение было то, что IE нене понимаюp:hover::after
селектор, как это работает в IE, если вы установите наведение на элемент предка, например,div:hover p::after
- живое демо:http://jsfiddle.net/SPHzj/14/.
Однако это не так, поскольку IE действительно способен понять этот селектор. Хитрость заключается в том, чтобы определитьp:hover {}
править также. (Обнаружено@ maxw3st.)
p:hover {}
Это правило может быть пустым. Простое присутствие этого правила заставит переход работать в IE10.
Живая демоверсия: http://jsfiddle.net/SPHzj/15/ (также работает в IE10)
Какие'здесь происходит? Почему IE требует, чтобы это правило присутствовало, чтобы переходы работали с псевдоэлементом? Должно ли это быть ошибкой?