Usando comentarios condicionales es fácil apuntar a Internet Explorer con reglas CSS específicas del navegador:
<!--[if IE 6]>
...include IE6-specific stylesheet here...
<![endif]-->
A veces es el motor Gecko (Firefox) el que se porta mal. ¿Cuál sería la mejor manera de apuntar solo a Firefox con sus reglas CSS y no a otro navegador? Es decir, Internet Explorer no solo debe ignorar las reglas exclusivas de Firefox, sino también WebKit y Opera.
Nota: Estoy buscando una solución 'limpia'. Usar un sniffer de navegador JavaScript para agregar una clase 'firefox' a mi HTML no califica como limpio en mi opinión. Prefiero ver algo que depende de las capacidades del navegador, al igual que los comentarios condicionales son solo "especiales" para IE ...
Respuestas:
OK, lo encontré. Esta es probablemente la solución más limpia y fácil que existe y no depende de que JavaScript esté activado.
Se basa en otra extensión CSS específica de Mozilla. Aquí hay una lista completa de estas extensiones CSS: Extensiones CSS de Mozilla .
fuente
domain()
filtro. Por ejemplo@-moz-document domain(google.com) {...}
, aplicará las reglas CSS adjuntas solo en el dominio google.com.Actualizado (desde el comentario de @Antoine)
Puedes usar
@supports
Más
@supports
aquífuente
Aquí se explica cómo abordar tres navegadores diferentes: IE, FF y Chrome
fuente
Aquí hay algunos trucos del navegador para apuntar solo al navegador Firefox,
Usando hacks selectores.
JavaScript Hacks
Hacks de consultas de medios
Esto funcionará en Firefox 3.6 y posterior
Si necesita más información, visite browserhacks
fuente
_:moz-tree-row(hover)
por lo que será el único capaz de procesar el.selector{}
siguiente. Estos hacks específicos actualmente funcionan en todas las versiones de Firefox, consulte browserhacks.com para obtener más información al respecto.En primer lugar, un descargo de responsabilidad. Realmente no abogo por la solución que presento a continuación. El único CSS específico del navegador que escribo es para IE (especialmente IE6), aunque desearía que no fuera el caso.
Ahora, la solución. Le pediste que fuera elegante, así que no sé qué tan elegante es, pero seguramente solo se dirigirá a las plataformas Gecko.
El truco solo funciona cuando JavaScript está habilitado y hace uso de los enlaces de Mozilla ( XBL ), que se usan mucho internamente en Firefox y todos los demás productos basados en Gecko. A modo de comparación, esto es como el comportamiento de la propiedad CSS en IE, pero mucho más potente.
Hay tres archivos involucrados en mi solución:
ff.html
ff.xml
ff.css
Actualización: la solución anterior no es tan buena. Sería mejor si en lugar de agregar un nuevo elemento LINK agregara esa clase "firefox" en el elemento BODY. Y es posible, simplemente reemplazando el JS anterior con lo siguiente:
La solución está inspirada en los comportamientos moz de Dean Edwards .
fuente
El uso de reglas específicas del motor garantiza una orientación efectiva del navegador.
fuente
Una variación de su idea es tener una
server-side USER-AGENT detector
que descubra qué hoja de estilo adjuntar a la página. De esta manera puedes tener unfirefox.css, ie.css, opera.css, etc
.Puede lograr algo similar en Javascript, aunque no lo considere limpio.
He hecho algo similar al tener un
default.css
que incluyeall common styles and then specific style sheets
se agrega para anular o mejorar los valores predeterminados.fuente
Ahora que Firefox Quantum 57 está disponible con mejoras sustanciales, y potencialmente innovadoras, para Gecko, conocidas colectivamente como Stylo o Quantum CSS, puede encontrarse en una situación en la que debe distinguir entre las versiones heredadas de Firefox y Firefox Quantum.
De mi respuesta aquí :
fuente
La única forma de hacerlo es a través de varios hacks CSS, lo que hará que sea mucho más probable que su página falle en las próximas actualizaciones del navegador. En todo caso, será MENOS seguro que usar un sniffer js-browser.
fuente
La compatibilidad con CSS tiene enlace a JavaScript, como nota al margen.
https://developer.mozilla.org/en-US/docs/Web/CSS/Mozilla_Extensions
fuente
El siguiente código tiende a arrojar advertencias de pelusa Style:
En lugar de usar
Me ayudó a salir! Obtuve la solución para la advertencia de pelusa de estilo desde aquí
fuente