Являются ли CSS3 :: before и :: после псевдоэлементов, поддерживаемых IE9, или нет?
В этой таблице совместимости MS говорится: IE9 не поддерживает псевдоэлементы ::before
и ::after
, но когда я пытаюсь, кажется, что это происходит … см. JSBin
Я делаю что-то неправильно? Я думал, что ::before
and ::after
будут хорошими инструментами, чтобы скрыть вещи от IE9, когда на самом деле они этого не делают.
- Могу ли я изменить высоту изображения в CSS: до /: после псевдоэлементов?
- :: перед выпуском порядка псевдоэлементной укладки
- Как я могу сделать сгенерированный контент доступным?
- Объединить: после: hover
- В чем разница между псевдоclassом и псевдоэлементом в CSS?
- Объединить атрибуты CSS и псевдоэлементы?
- Почему: до и: после псевдоэлементов работать с элементами `img`?
- Почему: перед и: после псевдоэлементов требуется свойство content?
- Должен ли я использовать одно или двойное обозначение двоеточия для псевдоэлементов?
- Вертикально центрирующее содержимое: до /: после псевдоэлементов
- CSS: после добавления содержимого к определенным элементам
- Как получить доступ к свойствам стиля псевдоэлементов с помощью jQuery?
- CSS: прежде чем на встроенном SVG
Псевдоэлементы CSS2 :before
и :after
, с традиционной записью с одним двоеточием, поддерживаются IE8 и более поздними версиями. Они не новы для CSS3.
Обозначение с двойной колонкой, с другой стороны, является новым для CSS3 . IE9 поддерживает эту новую нотацию для ::before
и ::after
, а также для псевдо-элементов CSS1 ::first-line
и ::first-letter
. Однако в будущем новый псевдоэлемент не может использовать синтаксис одного двоеточия, и ожидается, что браузеры (включая IE) будут поддерживать синтаксис двойного двоеточия для всех псевдоэлементов.
Я не знаю, почему эта таблица говорит, что IE9 не поддерживает новый псевдоэлементный синтаксис, потому что он, безусловно, соответствует документам для отдельных селекторов, связанных выше, и вашему тестовому примеру. Как и, конечно, этот ответ.
IE 9 поддерживает обозначения ::after
и ::before
(с двумя двоеточиями) в «стандартном режиме». В режиме «quirks mode» это не так. Это можно проверить, например, следующим образом:
Hello world
Здесь правило CSS игнорируется, потому что IE 9 переходит в режим quirks. Но если вы добавите следующую строку в самом начале, IE 9 перейдет в режим стандартов, и правило CSS вступит в силу:
Обычно в IE 9 в режиме quirks новые функции CSS (большинство функций, которые не входят ни в CSS 2.1, ни в наследие IE) не поддерживаются. В режиме quirks IE 9 не поддерживает старые однострочные обозначения :after
и :before
. Он поддерживает их (но не версии с двумя двоеточиями) в режиме «IE 8», которые вы можете выбрать в инструментах разработчика (F12) вручную, в меню «Режим документа» или на уровне документа с помощью тега .
Как указано в http://www.w3.org/community/webed/wiki/Advanced_CSS_selectors
CSS3 псевдоэлементный двойной синтаксис двоеточия. Обратите внимание, что новый способ написания псевдоэлементов CSS3 заключается в использовании двойного двоеточия, например a :: after {…}, чтобы отличать их от псевдоclassов. Иногда вы можете видеть это в CSS. Однако CSS3 также позволяет использовать псевдоэлементы с одним двоеточием ради обратной совместимости, и мы бы посоветовали вам придерживаться этого синтаксиса.