У меня проблемы с получением
<!--[if !IE]>
работать. Мне интересно, это потому, что это есть в моем документе
<!doctype html>
<!--[if lt IE 7]> <html class="ie6 oldie"> <![endif]-->
<!--[if IE 7]> <html class="ie7 oldie"> <![endif]-->
<!--[if IE 8]> <html class="ie8 oldie"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="">
<!--<![endif]-->
Когда я добавляю
<!--[if !IE]><!-->
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css" />
<!--<![endif]-->
в мой заголовок почему-то не работает. Однако если я добавлю
<!--[if !IE]><!-->
<style>
All my css in here
</style>
<!--<![endif]-->
к фактической странице html (в заголовке) он работает. Какие-либо предложения? Ура
Обновите мой вопрос
Хорошо, когда я удалил,
<!-->
я проверил только IE, который работал, но теперь обратно в FF no-ie.css был применен и к FF. Поэтому я добавил обратно <!-->
и удалил / (и добавил это в основной шаблон, чтобы cms не добавлял его обратно), и все снова работает в FF, но теперь таблица стилей применяется к IE! Так что я попробовал
<!--[if IE]>
<link type="text/css" rel="stylesheet" href="https://stackoverflow.com/stylesheets/no-ie.css">
<![endif]-->
а также
<!--[if !IE]> -->
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css">
<!-- <![endif]-->
И это не сработало. В основном я пытаюсь заставить эту страницу работать http://css-tricks.com/examples/ResponsiveTables/responsive.php, но переместите css в таблицу стилей. Конечно, это должно быть просто. Что мне не хватает? Я бы предпочел не использовать JQuery, если мне не нужно. Ура
источник
<!-->
сразу после<!--[if !IE]>
Ответы:
<!--[if !IE]><!--><script src="zepto.min.js"></script><!--<![endif]--> <!--[if IE]><script src="jquery-1.7.2.min.js"></script><![endif]-->
Примечание. Эти условные комментарии больше не поддерживаются начиная с IE 10 .
источник
Браузеры, отличные от IE, обрабатывают условные операторы как комментарии, поскольку они заключены в теги комментариев.
<!--[if IE]> Non-IE browsers ignore this <![endif]-->
Однако, когда вы ориентируетесь на браузер, который НЕ является IE, вы должны использовать 2 комментария, один до и один после кода. IE игнорирует код между ними, тогда как другие браузеры будут рассматривать его как обычный код. Таким образом, синтаксис для настройки таргетинга на браузеры, отличные от IE:
<!--[if !IE]--> IE ignores this <!--[endif]-->
Примечание. Эти условные комментарии больше не поддерживаются начиная с IE 10 .
источник
<!--[if !IE]-->IE ignores this<!--[endif]-->
он не скрыт от IE! (7, 8 или 9)Обновление, если кто-то все еще заходит на эту страницу, задаваясь вопросом, почему таргетинг не работает. IE 10 и более поздние версии больше не поддерживают условные комментарии. С официального сайта MS:
Подробнее см. Здесь: http://msdn.microsoft.com/en-us/library/ie/hh801214(v=vs.85).aspx
Если вам отчаянно нужно настроить таргетинг, то есть, вы можете использовать этот код jquery для добавления класса ie, а затем использовать класс .ie в своем CSS для таргетинга, то есть браузеров.
if ($.browser.msie) { $("html").addClass("ie"); }
Обновление: $ .browser недоступен после jQuery 1.9. Если вы обновляетесь до jQuery выше 1.9 или уже используете его, вы можете включить скрипт миграции jQuery после jQuery, чтобы он добавлял недостающие части: Плагин jQuery Migrate
В качестве альтернативы, пожалуйста, проверьте эту ветку на предмет возможных обходных путей: ошибка browser.msie после обновления до jQuery 1.9.1
источник
Я использую это, и это работает:
<!--[if !IE]><!--> if it is not IE <!--<![endif]-->
источник
Рекомендуемый Microsoft синтаксис для условных «комментариев», обнаруженных на нижнем уровне, следующий:
<![if !IE]> <link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css" /> <![endif]>
Это не комментарии, но они работают правильно.
источник
Прежде всего, правильный синтаксис:
<!--[if IE 6]> <link type="text/css" rel="stylesheet" href="https://stackoverflow.com/stylesheets/ie6.css" /> <![endif]-->
Попробуйте этот пост: http://www.quirksmode.org/css/condcom.html и http://css-tricks.com/how-to-create-an-ie-only-stylesheet/
Еще вы можете сделать:
Проверьте браузер с помощью jQuery:
if($.browser.msie){ // do something... }
в этом случае вы можете изменить правила css для некоторых элементов или добавить новую ссылку на ссылку css:
прочтите это: http://rickardnilsson.net/post/2008/08/02/Applying-stylesheets-dynamically-with-jQuery.aspx
источник
Вам нужно поставить место для
<!-- [if !IE] -->
моего полного блока css следующим образом, поскольку IE8 ужасен с медиа-запросами<!-- IE 8 or below --> <!--[if lt IE 9]> <link rel="stylesheet" type="text/css" href="https://stackoverflow.com/Resources/css/master1300.css" /> <![endif]--> <!-- IE 9 or above --> <!--[if gte IE 9]> <link rel="stylesheet" type="text/css" media="(max-width: 100000px) and (min-width:481px)" href="https://stackoverflow.com/Resources/css/master1300.css" /> <link rel="stylesheet" type="text/css" media="(max-width: 480px)" href="https://stackoverflow.com/Resources/css/master480.css" /> <![endif]--> <!-- Not IE --> <!-- [if !IE] --> <link rel="stylesheet" type="text/css" media="(max-width: 100000px) and (min-width:481px)" href="/Resources/css/master1300.css" /> <link rel="stylesheet" type="text/css" media="(max-width: 480px)" href="/Resources/css/master480.css" /> <!-- [endif] -->
источник
!IE
Упомянутая здесь методика фактически выполнит закомментированный блок для IE с 7 по 10.Для таргетинга на пользователей IE:
<!--[if IE]> Place Content here for Users of Internet Explorer. <![endif]-->
Для нацеливания на всех остальных:
<![if !IE]> Place Content here for Users of all other Browsers. <![endif]>
Условные комментарии могут быть обнаружены только Internet Explorer, все остальные браузеры передают его как обычные комментарии.
Чтобы настроить таргетинг на IE 6,7 и т. Д., Вы должны использовать «Больше, чем равно» или «Меньше, чем (равно)» в выражении If. Как это.
Больше или равно:
<!--[if gte IE 7]> Place Content here for Users of Internet Explorer 7 or above. <![endif]-->
Меньше, чем:
<!--[if lt IE 6]> Place Content here for Users of Internet Explorer 5 or lower. <![endif]-->
Источник: mediacollege.com
источник
Это до IE9
<!--[if IE ]> <style> .someclass{ text-align: center; background: #00ADEF; color: #fff; visibility:hidden; // in case of hiding } #someotherclass{ display: block !important; visibility:visible; // in case of visible } </style>
Это после IE9
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {enter your CSS here}
источник
Для браузера IE:
<!--[if IE]> <meta http-equiv="Content-Type" content="text/html; charset=Unicode"> <![endif]-->
Для всех браузеров, отличных от IE:
<![if !IE]> <meta http-equiv="Content-Type" content="text/html; charset=utf8"> <![endif]>
Для всех IE больше 8 ИЛИ всех браузеров, отличных от IE:
<!--[if (gt IE 8)|!(IE)]><!--><script src="/_JS/library/jquery-2.1.1.min.js"></script><!--<![endif]-->
источник
Условный комментарий - это комментарий, который начинается с
<!--[if IE]>
которого не может быть прочитан ни одним браузером, кроме IE.с 2011 г. Условный комментарий не поддерживается, начиная с IE 10, как было объявлено Microsoft в то время https://msdn.microsoft.com/en-us/library/hh801214(v=vs.85).aspx
Единственный вариант использования условных комментариев - это запросить IE для запуска вашего сайта как IE 9, который поддерживает условные комментарии.
вы можете написать свои собственные файлы css и / или js, т.е. только, и другие браузеры не будут загружать и выполнять их.
этот фрагмент кода показывает, как заставить IE 10 или 11 запускать файлы ie-only.css и ie-only.js, которые содержат специальные коды для решения проблем совместимости IE.
<html> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9"> <!--[if IE]> <meta http-equiv="Content-Type" content="text/html; charset=Unicode"> <link rel="stylesheet" type="text/css" href='/css/ie-only.css' /> <script src="/js/ie-only.js"></script> <![endif]--> </html>
источник
Это работает для меня во всех браузерах выше версии 6 (IE7, 8, 9, 10 и т. Д., Chrome 3 до того, что есть сейчас, и FF ver 3 до того, что есть сейчас):
//test if running in IE or not function isIE () { var myNav = navigator.userAgent.toLowerCase(); return (myNav.indexOf('msie') != -1 || myNav.indexOf('trident') != -1) ? true : false; }
источник
Если вы работаете с IE 10 или выше, как указано в http://tanalin.com/en/articles/ie-version-js/, условные комментарии больше не поддерживаются. Вы можете обратиться к https://gist.github.com/jasongaylord/5733469 в качестве альтернативного метода, версия Trident которого также проверяется с помощью navigator.userAgent. Это также проверено, если браузер работает в режиме совместимости.
источник
Спасибо, Fernando68, я использовал это:
function isIE () { var myNav = navigator.userAgent.toLowerCase(); return (myNav.indexOf('msie') != -1 || myNav.indexOf('trident') != -1) ? true : false; } if(isIE()){ $.getScript('js/script.min.js', function() { alert('Load was performed.'); }); }
источник
Я использую этот javascript для обнаружения браузера IE
if ( navigator.appVersion.toUpperCase().indexOf("MSIE") != -1 || navigator.appVersion.toUpperCase().indexOf("TRIDENT") != -1 || navigator.appVersion.toUpperCase().indexOf("EDGE") != -1 ) { $("#ie-warning").css("display", "block"); }
источник
Я получаю, что этот код работает в моем браузере:
<!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> <![endif]-->
Примечание для этого кода: поддержка HTML5 Shiv и Respond.js IE8 элементов HTML5 и медиа-запросов
источник