Foros Programación Cliente
Cargar hojas de estilos aleatoriamente
8 8 Respuestas Miércoles 8 de abril, 2009
Creo que el título es bastante descriptivo. Pongamos que tenemos algo parecido a ésto:
misitio/css/estilo1.css
misitio/css/estilo2.css
misitio/css/estilo3.css
La idea sería que, mediante un script (php, js, etc), cada vez que un usuario entre a la página se cargue de manera aleatoria uno de los 3 estilos.
Otro tema sería cómo hacer que dicho estilo se mantuviese durante cada sesión, es decir, que aunque el usuario navegue dentro de la página, el estilo generado en un principio se mantenga, aunque este sería un problema secundario, me interesa sobre todo la primera cuestión.
Espero haberme explicado con claridad. Gracias a todos por vuestro tiempo y un saludo.
misitio/css/estilo1.css
misitio/css/estilo2.css
misitio/css/estilo3.css
La idea sería que, mediante un script (php, js, etc), cada vez que un usuario entre a la página se cargue de manera aleatoria uno de los 3 estilos.
Otro tema sería cómo hacer que dicho estilo se mantuviese durante cada sesión, es decir, que aunque el usuario navegue dentro de la página, el estilo generado en un principio se mantenga, aunque este sería un problema secundario, me interesa sobre todo la primera cuestión.
Espero haberme explicado con claridad. Gracias a todos por vuestro tiempo y un saludo.
-
plastikaweb
Registrado desde 23/10/08 / Número de posts: 22
Con PHP lo consigues facilmente:
Inicias sesiòn en cada página del sitio i creas un número aleatorio guardandolo como variable de sesión:<?php
session_start();
if (!isset($_SESSION['num'])){
$numero = rand(1,3);
$_SESSION['num'] = $numero;
}
?>
Luego en el link hacia el fichero CSS le das el valor a la propiedad href como sigue:
href="misitio/css/estilo<?=$_SESSION['num'];?>.css"Carlos Matheu Armengol - plastikaweb
desarrollo web - AS3, Flash, CSS, XHTML, PHP, Joomla!, Wordpress, Facebook apps
info@plastikaweb.com
www.plastikaweb.com
www.facebook.com/plastikaweb -
diegojimenez
Registrado desde 07/10/08 / Número de posts: 12
Gracias Carlos! La verdad es que es un método genial.
Otro método que he encontrado para hacerlo es mediante js, y funciona bastante bien. El problema es que no valida:<script type="text/javascript">
function chooseStyle() {
var css = new Array('estilo1','estilo3','estilo3','estilo4');
var i = Math.floor(Math.random()*css.length);
var style = "css/"+css[i]+".css";
return style;
}
¿Sabrías decirme cómo hacer algo parecido pero sin recordar la sesión con tu método (PHP)? Es decir, cada vez que el usuario entra en la web, carga un estilo de manera aleatoria, sin más. No hace falta que guarde la sesión, de hecho he ahí lo divertido (que cada vez la página sea diferente).
¡Gracias por la ayuda y un saludo!
-
JML
Registrado desde 27/01/08 / Número de posts: 53
<?php
$numero = rand(1,3);
}
?>
y luego para enlazar la hoja de estilos:<link type="text/css" href="css/estilo<?php echo $numero; ?>.css" media="all" rel="stylesheet" /> -
diegojimenez
Registrado desde 07/10/08 / Número de posts: 12
Sin saber de PHP, creo que hay un error en la sintaxis del primer código. -
diegojimenez
Registrado desde 07/10/08 / Número de posts: 12
Efectivamente, no funciona "Parse error: syntax error, unexpected" en la línea de$numero = rand(1,3); -
plastikaweb
Registrado desde 23/10/08 / Número de posts: 22
Si, seria como dice JML, sólo que había una llave de cierre de función perdida,<?php
$numero = rand(1,3);
?>
Pero así al navegar por diferentes páginas del sitio el estilo ira cambiando en la misma sesión del navegador, si es lo que quieres, es así de simple!
saludosCarlos Matheu Armengol - plastikaweb
desarrollo web - AS3, Flash, CSS, XHTML, PHP, Joomla!, Wordpress, Facebook apps
info@plastikaweb.com
www.plastikaweb.com
www.facebook.com/plastikaweb -
diegojimenez
Registrado desde 07/10/08 / Número de posts: 12
Fenomenal, funciona perfectamente! ¡Gracias a los dos por la ayuda!! :D -
JML
Registrado desde 27/01/08 / Número de posts: 53
Yo lo único que he hecho ha sido "copy&paste" del código de plastikaweb...
Áreas Domestika
- Diseño (gráfico, web, industrial, producto)
- Programación (cliente, servidor, accesibilidad)
- Ilustración (autores, inspiración, técnicas)
- Fotografía (técnica, equipo, autores)
- Motion Graphics (showreels, software, estudios)
- Publicidad (campañas, anuncios, ideas)
- Informática (software, hardware, trucos)
- 3D (técnicas, iluminación, modelado)
- Experiencia de Usuario (usabilidad, AI, HCI)
- Cine, vídeo y televisión (críticas, producción)
- Música y Audio (sonidos, loops, discos)
- Espacios (arquitectura, interiorismo)