only internet for html internet-explorer conditional-comments

html - internet - <!-[if! IE]> no funciona



if ie 8]> (16)

Tengo problemas para obtener

<!--[if !IE]>

trabajar. Me pregunto si es porque tengo esto en mi documento

<!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]-->

Cuando agrego

<!--[if !IE]><!--> <link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css" /> <!--<![endif]-->

a mi encabezado por alguna razón, no funciona. Sin embargo, si agrego

<!--[if !IE]><!--> <style> All my css in here </style> <!--<![endif]-->

a la página html real (en el encabezado) funciona. ¿Alguna sugerencia? Aclamaciones

Actualiza a mi pregunta

Ok, cuando eliminé <!--> solo revisé IE que estaba funcionando pero ahora de regreso en FF el no-ie.css también se había aplicado a FF. Así que volví a agregar en el <!--> y eliminé el / (y lo agregué a la plantilla principal para que el cms no lo agregara nuevamente) y todo está funcionando en FF, pero ahora la hoja de estilos se está aplicando al IE ! Así que lo intenté

<!--[if IE]> <link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css"> <![endif]-->

y

<!--[if !IE]> --> <link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css"> <!-- <![endif]-->

Y eso no funcionó. Básicamente, estoy intentando que esta página funcione http://css-tricks.com/examples/ResponsiveTables/responsive.php pero mueva el css a una hoja de estilo. Seguramente tiene que ser simple. ¿Qué me estoy perdiendo? Prefiero no usar JQuery si no es necesario. Aclamaciones


Debes poner un espacio para <!-- [if !IE] --> Mi bloque de css completo va de la siguiente manera, ya que IE8 es terrible con las consultas de los medios

<!-- IE 8 or below --> <!--[if lt IE 9]> <link rel="stylesheet" type="text/css" href="/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="/Resources/css/master1300.css" /> <link rel="stylesheet" type="text/css" media="(max-width: 480px)" href="/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] -->


El comentario condicional es un comentario que comienza con <!--[if IE]> que no puede leer ningún navegador, excepto IE.

desde 2011 El comentario condicional no se admite a partir de IE 10 como lo anunció Microsoft en ese momento https://msdn.microsoft.com/en-us/library/hh801214(v=vs.85).aspx

La única opción para utilizar los comentarios condicionales es solicitar IE para ejecutar su sitio como IE 9 que admite los comentarios condicionales.

puede escribir sus propios archivos css y / o js, ​​es decir, solo y otros navegadores no lo cargarán ni ejecutarán.

este fragmento de código muestra cómo hacer que IE 10 o 11 ejecute ie-only.css y ie-only.js, que contiene códigos personalizados para resolver problemas de compatibilidad de 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>



En primer lugar, la sintaxis correcta es:

<!--[if IE 6]> <link type="text/css" rel="stylesheet" href="/stylesheets/ie6.css" /> <![endif]-->

Pruebe esta publicación: http://www.quirksmode.org/css/condcom.html y http://css-tricks.com/how-to-create-an-ie-only-stylesheet/

Otra cosa que puedes hacer:

Verifique el navegador con jQuery:

if($.browser.msie){ // do something... }

en este caso, puede cambiar las reglas de css para algunos elementos o agregar una nueva referencia de enlace css:

lea esto: http://rickardnilsson.net/post/2008/08/02/Applying-stylesheets-dynamically-with-jQuery.aspx


Entiendo que este código funciona en mi navegador:

<!--[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]-->

Nota para este código: compatibilidad con HTML5 Shiv y Respond.js IE8 de elementos HTML5 y consultas de medios


Esto funciona para mí en todos los navegadores que superan la versión 6 (IE7, 8, 9, 10, etc., Chrome 3 hasta lo que es ahora y FF ver 3 hasta lo que es ahora):

//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; }


Estoy usando este javascript para detectar el navegador 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"); }


Gracias Fernando68, usé esto:

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.''); }); }


La sintaxis recomendada por Microsoft para los "comentarios" condicionales revelados a nivel inferior es esta:

<![if !IE]> <link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css" /> <![endif]>

Estos no son comentarios, pero funcionan correctamente.


Los navegadores distintos de IE tratan los enunciados condicionales como comentarios porque están encerrados dentro de etiquetas de comentarios.

<!--[if IE]> Non-IE browsers ignore this <![endif]-->

Sin embargo, cuando se dirige a un navegador que NO es IE, tiene que usar 2 comentarios, uno antes y otro después del código. IE ignorará el código entre ellos, mientras que otros navegadores lo tratarán como código normal. La sintaxis para apuntar a navegadores no IE es por lo tanto:

<!--[if !IE]--> IE ignores this <!--[endif]-->

Nota: estos comentarios condicionales ya no son compatibles desde IE 10 en adelante .


Para el navegador IE:

<!--[if IE]> <meta http-equiv="Content-Type" content="text/html; charset=Unicode"> <![endif]-->

Para todos los navegadores que no sean IE:

<![if !IE]> <meta http-equiv="Content-Type" content="text/html; charset=utf8"> <![endif]>

Para todos los IE mayores de 8 O todos los navegadores que no sean IE:

<!--[if (gt IE 8)|!(IE)]><!--><script src="/_JS/library/jquery-2.1.1.min.js"></script><!--<![endif]-->


Una actualización si alguien todavía llega a esta página, preguntándose por qué la orientación ie no funciona. IE 10 y siguientes ya no admiten comentarios condicionales. Desde el sitio web oficial de MS:

El soporte para comentarios condicionales se ha eliminado en los estándares de Internet Explorer 10 y en los modos de peculiaridades para mejorar la interoperabilidad y el cumplimiento con HTML5.

Por favor, mira aquí para más detalles: msdn.microsoft.com/en-us/library/ie/hh801214(v=vs.85).aspx

Si necesita apuntar desesperadamente, es decir, puede usar este código jquery para agregar una clase ie a y luego usar la clase .ie en su CSS para apuntar, por ejemplo, navegadores.

if ($.browser.msie) { $("html").addClass("ie"); }

Actualización: $ .browser no está disponible después de jQuery 1.9. Si actualiza a jQuery anterior a 1.9 o si ya lo usa, puede incluir el script de migración jQuery después de jQuery para que agregue partes faltantes: jQuery Migrate Plugin

Alternativamente, compruebe este hilo para posibles soluciones: error browser.msie después de actualizar a jQuery 1.9.1


Yo uso eso y funciona:

<!--[if !IE]><!--> if it is not IE <!--<![endif]-->


Esto es para hasta 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>

Esto es para después de IE9

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {enter your CSS here}


Para dirigirse a los usuarios de IE:

<!--[if IE]> Place Content here for Users of Internet Explorer. <![endif]-->

Para orientar a todos los demás:

<![if !IE]> Place Content here for Users of all other Browsers. <![endif]>

Los Comentarios condicionales solo pueden ser detectados por Internet Explorer, todos los demás navegadores lo insertan como Comentarios normales.

Para orientar IE 6,7, etc. Debe usar "Mayor que Igual" o "Menor que (Igual)" en la declaración If. Me gusta esto.

Mayor que o igual:

<!--[if gte IE 7]> Place Content here for Users of Internet Explorer 7 or above. <![endif]-->

Menor que:

<!--[if lt IE 6]> Place Content here for Users of Internet Explorer 5 or lower. <![endif]-->

Fuente: mediacollege.com


<!--[if !IE]><!--><script src="zepto.min.js"></script><!--<![endif]--> <!--[if IE]><script src="jquery-1.7.2.min.js"></script><![endif]-->

Nota: estos comentarios condicionales ya no son compatibles desde IE 10 en adelante .