Условные комментарии для IE

12.12.2017

Условные комментарии более не поддерживаются

Поддержка условных комментариев в стандартном режиме и режиме совместимости Internet Explorer 10 была удалена для улучшения взаимодействия и совместимости с HTML5. Это означает, что условные комментарии теперь обрабатываются как обычные комментарии, так же как в других браузерах. Это изменение может повлиять на страницы, написанные специально для Windows Internet Explorer, или страницы, использующие определитель браузера и подстраивающиеся под Internet Explorer.

Примечание На большинство страниц это изменение не оказывает влияния.

Страница, использующая условные комментарии, работает нормально в Windows Internet Explorer 9, но не работает в Internet Explorer 10.

Если эта страница нормально работает в других браузерах, попробуйте использовать обнаружение возможностей, чтобы взаимодействовать с Internet Explorer 10, так же как с другими браузерами. Либо добавьте в начало страницы следующий тег meta, задающий выбор поведения Internet Explorer 9:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">

а следующей странице используются условные комментарии, поэтому на нее может повлиять данное изменение.

<html>
  <!--[if IE]>
    This content is ignored in IE10 and other browsers.
    In older versions of IE it renders as part of the page.
  <![endif]-->
</html>

Страницу можно быстро исправить, выбрав поведение Internet Explorer 9, как показано ниже.

<html>
  <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">
  <!--[if IE]>
    This content is ignored in Internet Explorer 10 and other browsers.
    In older versions of Internet Explorer, it renders as part of the page.
  <![endif]-->
</html>

Более основательным решением является удаление зависимости из кода.

Альтернативные варианты

Хак @media Zero Hack

@media screen and (min-width:0\0) { 
    /* стили только для IE9 - IE10 */ 
}

Хак @media -ms-high-contrast

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
   /* стили только для IE10 */
}

Хак @cc_on

<!--[if !IE]><!-->
<script>if(/*@cc_on!@*/false){document.documentElement.className+=' ie10';}</script>
<!--<![endif]-->

После применения данного хака в IE10 к тегу будет добавлен класс ie10. Теперь достаточно написать в CSS:

.ie10 .element { 
   /* стили только для IE10 */ 
}

Полезная инфа:

Оставить комментарий