Почему класс CSS не переопределяется для IE9? - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть фрагмент HTML-кода, в котором мы применяем специальные CSS для IE9, IE10 и IE11.

<!doctype html>
     <!--[if IE 9]><html data-placeholder-focus="false" lang="{%=user_locale_html}}" dir="ltr" class="ie9 lt-ie10 lt-ie11 lt-ie12 gt-ie8 gt-ie7 gt-ie6"><![endif]-->

     <!--[if !(IE)]><!--><html lang="{%=user_locale_html}}" dir="{%=dir}}">

<script>

  var ua = window.navigator.userAgent;

  if (ua.indexOf("Trident/7.0") > 0) 
    document.documentElement.className='ie11 lt-ie12 gt-ie10 gt-ie9 gt-ie8 gt-ie7 gt-ie6';
  else if (ua.indexOf("Trident/6.0") > 0)
    document.documentElement.className='ie10 lt-ie11 lt-ie12 gt-ie9 gt-ie8 gt-ie7 gt-ie6';

  if(/*@cc_on!@*/false){
    document.documentElement.className='gt-ie11 gt-ie10 gt-ie9 gt-ie8 gt-ie7 gt-ie6';
  }

</script>
<!--<![endif]-->
</html>

Обратите внимание на код if(/*@cc_on!@*/false) {}

Этот код переопределяет класс css, применяемый в IE10, когда у нас есть userAgant=Trident/6.0. (что вызывает у меня проблему с переопределением ie10 class.

Но мой вопрос: Почему этот код не переопределяет классыкогда браузер IE9?

Я знаю, что в коде не нужны вещи, связанные с @cc_on, но мне любопытно узнать, как он ведет себя по-другому.

Спасибо!

1 Ответ

0 голосов
/ 20 февраля 2019

Возможно, ваш код не идентифицирует IE 9, и поэтому класс CSS не переопределяется.

Я предлагаю вам попробовать обратиться к приведенному ниже примеру кода, который может найти IE 8, IE 9, IE 10, IE 11.

<!DOCTYPE html>
<html>
<head>
	<title>Page Title</title>
	<script>
	function GetIEVersion() {
  var sAgent = window.navigator.userAgent;
  var Idx = sAgent.indexOf("MSIE");

  // If IE, return version number.
  if (Idx > 0) 
    return parseInt(sAgent.substring(Idx+ 5, sAgent.indexOf(".", Idx)));

  // If IE 11 then look for Updated user agent string.
  else if (!!navigator.userAgent.match(/Trident\/7\./)) 
    return 11;

  else
    return 0; //It is not IE
}

if (GetIEVersion() > 0) 
   alert("This is IE " + GetIEVersion());
else 
   alert("This is not IE.");
	</script>
</head>
<body>

</body>
</html>

Выход:

enter image description here

Кроме того, вы можете попробовать изменить его в соответствии с вашими требованиямиможет помочь вам решить вашу проблему.

...