Cambiar la CSS dependiendo del navegador

Publicado por el día 2 Jul, 2008 | 2 comentarios


¿Necesitas escribir código para un determinado navegador? Algo que es también aplicable a hojas de estilo, que se ven de forma distinta en distintos navegadores. ¿Si?

Lo primero que vamos a hacer que el sistema nos cuente qué navegador estamos utilizando. Y también su versión, cosa que nos será útil con navegadores como Internet Explorer, que lee las CSS de distinta forma según la citada versión cambie.

// Aquí añadimos los navegadores, en minúsculas.
// Los separamos por espacios.  
 
$browsers = "mozilla msie gecko firefox ";
$browsers.= "konqueror safari netscape navigator ";
$browsers.= "opera mosaic lynx amaya omniweb";  
 
// Hacemos que se cree un array de navegadores, separados
// por los espacios.
$browsers = split(" ", $browsers);  
 
// Ahora capturamos el navegador que utilizamos.
$navegador = strToLower( $_SERVER['HTTP_USER_AGENT']);  
 
// Y ahora vamos comparando, uno a uno, hasta conseguir
// nuestro navegador y nuestra versión.
$l = strlen($navegador);
for ($i=0; $i
  $browser = $browsers[$i];
  $n = stristr($navegador, $browser);
  if(strlen($n)>0){
    $GLOBALS["ver"] = “”;
    $GLOBALS["nav"] = $browser;
    $j=strpos($navegador, $GLOBALS["nav"])+$n+strlen($GLOBALS["nav"])+1;
    for (; $j<=$l; $j++){
      $s = substr ($navegador, $j, 1);
      if(is_numeric($GLOBALS["ver"].$s) )
      $GLOBALS["ver"] .= $s;
      else
      break;
    }
  }
}
// Ahora podemos mostrar nuestro navegador por pantalla.
// Nosotros lo vamos a comentar, nos interesa para otras cosas.  
 
// echo ( “Tu navegador es: ” );
// echo ( $GLOBALS["nav"] . ” ” . $GLOBALS["ver"] );  
 
// Y ahora, utilizamos la información que tenemos.
// Vamos a hacer que cambie la clase que utilizamos según el navegador.  
 
  class=”explorer”
 class=”elresto”>Hola mundo.

Con este ejemplo y teniendo la información, podemos fabricarnos un script que discrimine por navegador y cargue la clase que queramos de nuestra CSS .