Как добавить классы в тег body только для IE

alexei15/11/2018 - 09:32

Из-за возможных различий в отображении браузерами одного и того же кода возникает необходимость в "подсовывании" ему персонального кода. При этом чаще всего приходится "бороться" с особенностями браузера Internet Explorer. К счастью, в некоторых случаях решить эту проблему помогает поддерживаемая браузером IE специальная технология определения версии под названием "условные комментарии". Так, при помощи условных комментариев определить специфичные для IE классы можно задать следующим образом:


<!--[if IE ]>
   <body class="ie">
<![endif]-->
<!--[if !IE]>-->
   <body>
<!--<![endif]-->

Или более расширенная версия добавления классов в HTML элемент:


<!DOCTYPE html>
<!--[if IEMobile 7 ]> <html dir="ltr" lang="en-US"class="no-js iem7"> <![endif]-->
<!--[if lt IE 7 ]> <html dir="ltr" lang="en-US" class="no-js ie6 oldie"> <![endif]-->
<!--[if IE 7 ]>    <html dir="ltr" lang="en-US" class="no-js ie7 oldie"> <![endif]-->
<!--[if IE 8 ]>    <html dir="ltr" lang="en-US" class="no-js ie8 oldie"> <![endif]-->
<!--[if (gte IE 9)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html dir="ltr" lang="en-US" class="no-js"><!--<![endif]-->

Теперь вы можете прописать специфичные для браузера IE стили в штатном файле таблицы стилей. Достаточно определить соответствующий CSS селектор, начинающийся с сочетания .ie