Hojas de estilo CSS dinámicas
Es posible generar hojas de estilo dinámicas con PHP. El siguiente artículo sólo pretende mostrar la idea, pero naturalmente se puede ‘complicar’ todo lo que uno quiera para obtener mejores resultados.
Supongamos que tengo una web en la que utilizo el sistema de plantillas más simple del mundo (probablemente). Mediante ese sistema podemos generar diferente HTML en cada plantilla, pero ¿cómo aplicaríamos una hoja de estilos propia para cada plantilla?.
Una solución sin complicarnos mucho sería crear diferentes hojas de estilo y llamar a la que corresponda en cada caso. Supongamos que la variable $tpl contiene el nombre de la plantilla:
<?php $tpl = "moderna"; echo " <link rel='stylesheet' type='text/css' href='".$tpl.".css' />"; ?>
Pero a mi no me gusta la idea de tener varios archivos CSS esperando en una carpeta y elegir ‘el que toca’ en cada caso. Me recuerda a aquellos tiempos feos (pre-PHP o pre-ASP) en que hacíamos sitios web estáticos, con decenas o incluso cientos de documentos HTML prácticamente iguales. ¿Si ahora creamos HTML dinámicamente, por qué no estamos creando también CSS dinámicamente? Esta es mi propuesta:
<?php $tpl = "moderna"; echo " <link rel='stylesheet' type='text/css' href='estilos.php?tpl=$tpl' />"; ?>
LLama la atención que nuestra página de estilos ya no lleva la extensión .css, sino que se trata de un archivo PHP en toda regla. Este es el archivo estilos.php:
<?php
header('Content-type:text/css');
switch ($_GET['tpl'])
{
case "clasica" :$f="'Times New Roman'";$c="#0000cc";break;
case "moderna" :$f="Verdana"; $c="#cc0000";break;
default :$f="Arial"; $c="#00cc00";break;
}
print <<<_CSS
h1{font-family:{$f};color:{$c};}
_CSS;
?>
Así, con un simple switch ajustamos el valor de las variables $f (para font-family) o $c (para color) en este sencillo ejemplo, de modo que los estilos para h1 se construyen dinámicamente en función de la plantilla elegida.
Acerca de esta entrada
Estás leyendo “Hojas de estilo CSS dinámicas”, de Quenerapú
- Publicado:
- 06|03|2009 a las 13:52h.
- Libros en Amazon.es:
- Sobre informática
| Sobre PHP
| Sobre CSS
| Sobre javaScript

1 comentario
Añadir comentario | comments rss [?] | trackback uri [?]