¿Existe una lista de condiciones del navegador para su uso, incluidas hojas de estilo?

StackOverflow https://stackoverflow.com/questions/46124

  •  09-06-2019
  •  | 
  •  

Pregunta

He visto gente haciendo cosas como esta en su HTML:

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

¿Funciona esto en todos los navegadores modernos y existe una lista de tipos de navegadores que funcionarán con ese tipo de declaración if?

Editar

Gracias ross.Interesante conocer gt, lt, gte y lte.

¿Fue útil?

Solución

Esto funciona en todos los navegadores porque cualquier cosa excepto IE ve <!--IGNORED COMMENT-->.Sólo IE lee el comentario si contiene una cláusula condicional.Mira esto Este artículo

También puede especificar qué versión de IE.Por ejemplo:

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

Otros consejos

Si puedes usar Javascript, hay varias opciones:

navigator.appName
navigator.appVersion 

enlace

O algo más robusto usando una biblioteca como jQuery.

Finalmente, podrías utilizar el Detectar navegador objeto de QuirksMode.

Una vez que tenga el nombre y la versión del navegador, puede insertar HTML para vincular a una hoja de estilo o incluir otras etiquetas.

Además de la respuesta de Ross, sólo puede apuntar al motor de renderizado de Internet Explorer con comentarios condicionales;No existe una construcción similar para otros navegadores.Por ejemplo, no puede escribir comentarios condicionales dirigidos a Firefox, pero Internet Explorer los ignora.

La forma en que logro el mismo efecto que en el ejemplo anterior es olfatear la cadena del agente de usuario.Luego entrego un archivo CSS adecuado para ese navegador.Esto no es perfecto porque a veces las personas cambian su cadena de agente de usuario por compatibilidad.

La otra forma de apuntar a diferentes navegadores es utilizar hacks específicos del navegador.¡Estos son particularmente desagradables porque generalmente dependen de errores en el navegador y es probable que los errores se solucionen!

En mi opinión, el rastreo de agentes de usuario es la mejor solución integral.

Los comentarios condicionales son exclusivamente para IE (versión 5 y posteriores).La documentación oficial de Microsoft es aquí.Si va a utilizarlos, la mejor estrategia es incluir condicionalmente hojas de estilo externas o archivos javascript después de su inclusión normal.Esto significa que en IE su código específico de IE anulará todo lo demás.En cualquier otro navegador, el código será tratado como comentarios y el analizador lo ignorará.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top