27/2 - 2008 ajax - programación - xhtml
CSS condicionado por navegador en distintos lenguajes
Una amiga me hizo esta pregunta en un mail ayer, así que esto fue lo que le conteste
HTML
Es una buena opción si estás trabajando sólo con documentos HTML. Aunque se dice que se pueden ocupar condiciones para todos los navegadores, la verdad es que nunca he conseguido aplicarla para otros agentes que no sean IE6 o IE7
<!--[if IE 7]> <link href="css/ie7.css" rel="stylesheet" type="text/css" /> <![endif]--> <!--[if IE 6]> <link href="css/ie6.css" rel="stylesheet" type="text/css" /> <![endif]-->
JAVASCRIPT
Trabajando con la variable navigator se pueden obtener datos como el agente del usuario (userAgent) o el nombre de la aplicación (appName) que estemos usando. Sin embargo, no es 100% accesible, ya que no funciona si se tiene el javascript del navegaor desactivado.
<script type="text/javascritp>
if(navigator.userAgent.match("MSIE 6")) {
document.write('<link href="css/ie6.css" rel="stylesheet" type="text/css" />');
}
if(navigator.userAgent.match("Firefox")) {
document.write('<link href="css/firefox.css" rel="stylesheet" type="text/css" />');
}
</script>
PHP
Perfecta si se esta trabajando en este lenguaje porque es más segura y accesible que la opción en JS. Además de obtener similares datos que la opción en JS
<?php
if(stristr($_SERVER["HTTP_USER_AGENT"]),"firefox") {
echo '<link href="css/firefox.css" rel="stylesheet" type="text/css" />';
}
if(stristr($_SERVER["HTTP_USER_AGENT"]),"firefox") {
echo '<link href="css/firefox.css" rel="stylesheet" type="text/css" />';
}
?>
3 comentarios en “CSS condicionado por navegador en distintos lenguajes”
1
felipe.lv
01/3/2008 | 5:48 pmCon respecto a los comentarios condicionales, en lo personal nunca he escuchado (o más bien, leído) que existan para todos los navegadores; lo que sí se que existe (y quizás esto podría provocar confusión) son dos tipos de comentarios condicionales para MSIE: uno de estos tipos es el que ejemplificaste acá, es lo que podríamos llamar el comentario condicional “clásico” (o, de acuerdo a la documentación de MS, “hidden”), y los comentarios “revealed”, que de hecho revelan información a los navegadores que no soportan comentarios condicionales… o sea, todos menos MSIE. Por ejemplo:
<![if lt IE 5]>
<p>Please upgrade to Internet Explorer version 5.</p>
<![endif]>
Pero eso rompe la validación, por lo que la alternativa es poner algo así:
<!–[if !IE]>–> HTML <!–<![endif]–>
que de hecho es un comentario “hidden” pero como está en negativo, lo que causa efectivamente es que todos los navegadores menos MSIE procesan el código.
De todos modos, considerando que generalmente los comentarios condicionales se usan para enviar hojas de estilo específicas para MSIE 6, me parece más práctico recurrir a algo como esto: http://dean.edwards.name/IE7/
![]()
2
jesu
19/3/2008 | 3:44 pmGracias por el código! Lo usaré y lo usaré y hará felices a muchas personas.
(si quieres borra esto, se parece más a un mail) Te mando muchos saludos! Y espero que lo estés pasando bien!








