Hojas de estilo alternativasUna página web puede tener enlazadas varias hojas de estilo distintas para que el usuario elija cuál se aplica. En Firefox, el menú permite elegir la hoja de estilo a aplicar. Internet Explorer no permite elegir entre hojas de estilo alternativas, aunque se puede simular este mecanismo a través de JavaScript.
En una página web, la etiqueta <link /> situada en la cabecera (<head>) indica la ubicación y nombre de la hoja de estilo enlazada mediante el atributo href :
<link href="nombre_del_archivo.css" rel="stylesheet"
type="text/css" />
Se pueden enlazar dos o más hojas de estilo, con lo que el código fuente contendrá tantas etiquetas <link /> como hojas enlazadas:
<link href="nombre_de_archivo_1.css" rel="stylesheet"
type="text/css" />
<link href="nombre_de_archivo_2.css" rel="stylesheet"
type="text/css" />
Si el atributo rel tiene el mismo valor (stylesheet), el navegador aplica simultáneamente las dos hojas de estilo a la página web. Si un elemento está definido en las dos hojas, el navegador hará lo que diga la última hoja de estilo de la lista.
Para que sean hojas de estilo alternativas, es decir, para que el usuario pueda elegir en el navegador qué hoja de estilo quiere aplicar, es necesario que:
<link href="nombre_de_archivo_1.css" rel="stylesheet"
type="text/css" title="Hoja 1"/>
<link href="nombre_de_archivo_2.css" rel="alternate stylesheet"
type="text/css" title="Hoja 2"/>
La selección de hojas de estilo se realiza en Firefox mediante el menú . Las opciones de este menú dependen de los atributos de las hojas de estilo enlazadas.
<link href="css/estilo.css" rel="stylesheet" type="text/css" /> |
|
<link href="fuentes_roma.css" rel="stylesheet" type="text/css" title="Color" /> |
![]() |
<link href="../varios/amaya.css" rel="stylesheet" type="text/css" title="Color" /> <link href="../varios/amaya_bn.css" rel="alternate stylesheet" type="text/css" title="Blanco y negro" /> |
![]() |
Mediante JavaScript se puede realizar un mecanismo similar a las hojas de estilo alternativas. Existen varias maneras de hacerlo y esta explicación está basada en la idea de Paul Sowden.
La idea es que al cargar la página, se identifiquen las hojas de estilo alternativas que están declaradas en la página web y asociar eventos a algunos elementos que provoquen el cambio de la hoja de estilo aplicada.
Para que el script se cargue junto con la página, se debe insertar un bloque <script> en la cabecera <head> que apunte al archivo styleswitcher.js, que debe estar en la ruta indicada en el atributo src (descarga styleswitcher.js).
<head>
. . .
<script type="text/javascript" src="styleswitcher.js">
</script>
. . .
</head>
Las hojas de estilo que vayan a utilizarse se declaran como se hace cuando se definen hojas de estilo alternativas.
<link href="nombre_de_archivo_1.css" rel="stylesheet" type="text/css" title="Hoja 1"/> <link href="nombre_de_archivo_2.css" rel="alternate stylesheet" type="text/css" title="Hoja 2"/>
Para cada hoja de estilo se debe crear un enlace "ficticio" que no apunte a ningún destino, pero que tenga establecido el atributo de evento onclick (o cualquier otro evento) que llame a la función que se encarga de cambiar la hoja de estilo (el argumento de la función es el atributo title del enlace a la hoja de estilo).
<a onclick="setActiveStyleSheet('Hoja 1'); return false;" href="">Texto</a>
<a onclick="setActiveStyleSheet('Hoja 2'); return false;" href="">Texto</a>
Al hacer clic en esos enlaces ficticios, se cambiará automáticamente de hoja de estilo.
Autor: Bartolomé Sintes Marco