Как я могу заставить IE8 принять CSS: перед тегом?

У меня есть следующий код CSS

.editable:before {
    content: url(../images/icons/icon1.png);
    padding-right:5px;
}

это используется в сочетании со следующей разметкой:

<span class="editable"></span>

В каждом другом благословенном браузере в мире появляется моя иконка, но у IE8, похоже, есть проблема с этим. Не является ли псевдоэлемент :before CSS2? не content: также команда CSS2? что дает?

Ответ 1

Обновление: я неправильно читаю страницу! IE 8 поддерживает: раньше с изображениями он просто не работает, когда он находится в режиме совместимости с IE7.

IE8 поддерживает :before, , но не, а также изображения как контент, когда он не находится в режиме совместимости. Престижность @toscho для тестирования!

Как я люблю quirksmode.org, который делает дело с этим материалом хотя бы на полпути терпимым. Парень заслуживает медали!

Ответ 2

Собственно, вы должны быть осторожны и читать детали. Полную информацию см. В этой ссылке - в которой указывается

В Windows Internet Explorer 8, а также более поздних версиях Windows Internet Explorer в стандарте IE8, только форма двоеточия этот псевдоэлемент распознается - то есть: before. Начиная с Windows Internet Explorer 9,:: перед псевдоэлементом требуется два двоеточия, хотя форма с одной толстой кишкой все еще распознается и ведет себя идентично форме двух толстой кишки.

Значение для браузеров <IE9 - вы должны использовать :before и для >=IE9 - вы должны использовать ::before

Ответ 3

При использовании: before и: after просто будьте осторожны, чтобы не использовать двойные двоеточия (:: after - не будет работать, но: после работы). Я потерял около 20 минут для этого...

Ответ 4

Вы можете использовать изображение в качестве фона для сгенерированного содержимого:

<!DOCTYPE html>
<meta charset="UTF-8">
<title>Generated content with an image</title>
<style>
p:before
    {
        content:    '';
        padding:    20px;
        background: url("css.png") center center no-repeat;
    }
</style>
<p>Test</p>

Работает в IE 8, Opera и Mozilla. Live-Demo.

Ответ 5

Это увлекательный пример Пекки... Мои высоты в моем проекте были высокими для ряда... Поэтому я добавил нижнюю часть: 0px;

На всякий случай вы дождетесь в это....

.icon-spinner:before {
    content: '';
    padding: 15px;
    padding-bottom: 0px;
    background: url("css.png") no-repeat left top;
}