Поддерживаются ли в IE9 псевдоэлементы CSS3 :: before и :: after? - PullRequest
12 голосов
/ 23 августа 2011

На в этой таблице совместимости MS указано, что IE9 не поддерживает псевдоэлементы ::before и ::after, но когда я пытаюсь, кажется, это ... см. JSBin

Я что-то не так делаю?Я думал, что ::before и ::after будут хорошими инструментами для сокрытия вещей от IE9, хотя на самом деле это не так.

Ответы [ 3 ]

27 голосов
/ 23 августа 2011

Псевдоэлементы CSS2 :before и :after, с традиционными обозначениями из одной двоеточия, поддерживаются IE8 и более поздними версиями. Они не новы для CSS3.

С другой стороны, запись с двоеточием нова для CSS3 . IE9 поддерживает эту новую нотацию для ::before и ::after, а также для псевдоэлементов CSS1 ::first-line и ::first-letter. Однако в дальнейшем ни один новый псевдоэлемент не может использовать синтаксис с одиночной двоеточием, и ожидается, что браузеры (включая IE) будут поддерживать синтаксис с двойной двоеточием для всех псевдоэлементов.

Я понятия не имею, почему в этой таблице написано, что IE9 не поддерживает новый синтаксис псевдоэлемента, потому что он, безусловно, работает в соответствии с документами для отдельных селекторов, связанных выше, и вашим тестовым примером. Как и, конечно, этот ответ.

5 голосов
/ 03 января 2013

IE 9 поддерживает обозначения ::after и ::before (с двумя двоеточиями) в «стандартном режиме».В «режиме причуд» это не так.Это можно проверить, например, следующим образом:

<style>
p::after  {  
  content: "***AFTER***";  
} 
</style>
<p>Hello world 

Здесь правило CSS игнорируется, поскольку IE 9 переходит в режим причуд.Но если вы добавите следующую строку в самом начале, IE 9 перейдет в режим стандартов, и вступит в силу правило CSS:

<!doctype html>

В IE 9 часто встречается режим quirks новые функции CSS (большинство функций, которых нет ни в CSS 2.1, ни в устаревшей версии IE) не поддерживаются.В режиме причуд IE 9 также не поддерживает старые обозначения с одной двоеточием :after и :before.Он поддерживает их (но не версии с двумя двоеточиями) в «режиме IE 8», который можно выбрать вручную в инструментах разработчика (F12), в меню «режим документа» или на уровне документа с помощью тега <meta http-equiv="X-UA-Compatible" content="IE=8">.

1 голос
/ 19 июня 2013

Как указано http://www.w3.org/community/webed/wiki/Advanced_CSS_selectors

Синтаксис двойного двоеточия в псевдоэлементе CSS3 Обратите внимание, что новый CSS3 способ написания псевдоэлементов - использовать двойное двоеточие, например: :: after { ...}, чтобы отделить их от псевдоклассов. Вы можете увидеть это иногда в CSS. CSS3, тем не менее, также позволяет использовать двоеточие псевдоэлементы, ради обратной совместимости, и мы бы советуем придерживаться этого синтаксиса на данный момент.

...