Cambiar hojas de estilo

En algún caso puede interesarnos ver una misma página con distintas hojas de estilo. El navegador Mozilla permite hacer esto directamente, pero en otros navegadores como Explorer debemos acudir al uso de JavaScript

Varias hojas de estilo en Mozilla/Firefox  

Basta con poner varios elementos link. La hoja de estilo por defecto debe tener un rel="stylesheet", mientras que las alternativas deben tener rel="alternate stylesheet".  Para que sean seleccionables dentro del menú de Ver, hay que ponerles además un atributo title. Por ejemplo:

    <link rel="stylesheet" title="normal" href="normal.css" type="text/css" media="screen">
<link rel="alternate stylesheet" title="claro" href="uno.css" type="text/css" media="screen">
<link rel="alternate stylesheet" title="oscuro" href="dos.css" type="text/css" media="screen">

 

Varias hojas de estilo en Explorer (y otros)

Habrá que usar algo de código JavaScript. Cuando se vea dicho tema en la asignatura se comprenderá el funcionamiento del código, por el momento se puede simplemente copiar y pegar en la página:

  1. Poner los mismos link que en el caso anterior, cuidando de que el que apunta a la hoja de estilo por defecto (rel="stylesheet") tenga un atributo id="hojaCSS". De este modo, nuestra página será compatible también con el menú Ver de Mozilla. En realidad para Explorer el único link necesario será el primero.
  2.     <link rel="stylesheet" title="normal" href="normal.css" type="text/css" media="screen" id="hojaCSS">
    <link rel="alternate stylesheet" title="claro" href="uno.css" type="text/css" media="screen">
    <link rel="alternate stylesheet" title="oscuro" href="dos.css" type="text/css" media="screen">
  3. Pegar el siguiente código en cualquier parte de la página (por ejemplo, dentro del <head>)

  4.     <script language="JavaScript">
           function cambiaCSS(nombre) {
              document.getElementById("hojaCSS").setAttribute("href", nombre);
           }
        </script>
  5. Pegar el siguiente código en la parte de la página donde deseamos que aparezcan los botones

	<form id="botones">
<input type="button" onClick="cambiaCSS('uno.css')" value="claro"/>
<input type="button" onClick="cambiaCSS('dos.css')" value="oscuro"/>
<input type="button" onClick="cambiaCSS('nada.css')" value="ninguno"/>
</form>

Habrá que sustituir los nombres de los ficheros ('uno.css','dos.css',...) por los nuestros



©2005/2006 Pilar Arques, Otto Colomina, Francisco Escolano, Javier Montoyo, Miguel Ángel Lozano
Departamento de ciencia de la computación e inteligencia Artificial - Universidad de Alicante
Iconos de Mark James