Краткое примечание о селекторах: before и: after в IE8: чтобы они работали, вам нужно объявить DOCTYPE.См. эту страницу W3Schools .Я предполагаю, что вы уже сделали это.
См. Ответ на этот вопрос , если вы этого еще не сделали (я думаю, что вы, вероятно, сделали).
В основном,Суть в том, что это ошибка.Ваше решение использовать z-index
из -1 не является идеальным , но, опять же, НИКАКОЕ обходное решение для ошибки не будет идеальным.Я не думаю, что использование z-индекса -1 должно вызывать беспокойство, если только это не вызывает проблем в вашем макете.Если вы очень обеспокоены, то почему бы вам не нацелиться ТОЛЬКО на IE8 с исправлением.Например, вы можете использовать условный комментарий, например, так:
<!--[if IE 8]>
<style>
#target>div{
z-index:-1;
}
</style>
<![endif]-->
Поведение, подобное тому, которое вы испытываете, является одной из причин, по которой многие разработчики презирают IE.Во многих случаях, включая этот, нет идеального решения.Вы можете:
- прекратить использование селекторов
:before
и :after
и настроить HTML / CSS на что-то, что является IE8-совместимым. - Использовать условные комментарии или JavaScript для выдачиисправление, специально предназначенное для IE8
- Продолжайте взламывать и пытайтесь найти другую работающую HTML / CSS-комбинацию, но есть вероятность, что она не будет более идеальной, чем ваше отрицательное
z-index
решение.
К сожалению, во многих случаях не существует такой вещи, как "семантически правильный" кросс-браузерный веб-сайт.
Мои два цента - создать таблицу стилей IE8 и использовать условный комментарий, который я отображал выше, чтобызагрузить таблицу стилей.В таблице стилей используйте решение z-index: -1
, которое вы придумали.Многие веб-сайты используют таблицы стилей, ориентированные на IE.