<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Quenerapú &#187; heredoc</title>
	<atom:link href="http://quenerapu.com/etiquetas/heredoc/feed/" rel="self" type="application/rss+xml" />
	<link>http://quenerapu.com</link>
	<description>Sentado delante de un ordenador desde 1982. ¿De qué voy a hablar, si no?</description>
	<lastBuildDate>Mon, 02 Aug 2010 14:22:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Hojas de estilo CSS dinámicas</title>
		<link>http://quenerapu.com/css/hojas-de-estilo-css-dinamicas/</link>
		<comments>http://quenerapu.com/css/hojas-de-estilo-css-dinamicas/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 11:52:08 +0000</pubDate>
		<dc:creator>Quenerapú</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[heredoc]]></category>
		<category><![CDATA[switch]]></category>

		<guid isPermaLink="false">http://quenerapu.local/?p=72</guid>
		<description><![CDATA[Del mismo modo que generamos páginas HTML con PHP podemos generar páginas CSS dinámicas. Este artículo explica cómo hacerlo.]]></description>
			<content:encoded><![CDATA[<p>Es posible generar hojas de estilo dinámicas con PHP. El siguiente artículo sólo pretende mostrar la idea, pero naturalmente se puede &#8216;complicar&#8217; todo lo que uno quiera para obtener mejores resultados.</p>
<p>Supongamos que tengo una web en la que utilizo <a href="2009/02/26/el-sistema-de-plantillas-mas-simple-del-mundo-probablemente/">el sistema de plantillas más simple del mundo (probablemente)</a>. Mediante ese sistema podemos generar diferente HTML en cada plantilla, pero ¿cómo aplicaríamos una hoja de estilos propia para cada plantilla?.</p>
<p>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 <strong>$tpl</strong> contiene el nombre de la plantilla:</p>
<pre class="brush: php;">
&lt;?php
$tpl = &quot;moderna&quot;;
echo &quot;
&lt;link rel='stylesheet'
type='text/css'
href='&quot;.$tpl.&quot;.css' /&gt;&quot;;
?&gt;
</pre>
<p>Pero a mi no me gusta la idea de tener varios archivos CSS esperando en una carpeta y elegir &#8216;el que toca&#8217; 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:</p>
<pre class="brush: php;">
&lt;?php
$tpl = &quot;moderna&quot;;
echo &quot;
&lt;link rel='stylesheet'
type='text/css'
href='estilos.php?tpl=$tpl' /&gt;&quot;;
?&gt;
</pre>
<p>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 <strong>estilos.php</strong>:</p>
<pre class="brush: php;">
&lt;?php
header('Content-type:text/css');
switch ($_GET['tpl'])
{
case &quot;clasica&quot; :$f=&quot;'Times New Roman'&quot;;$c=&quot;#0000cc&quot;;break;
case &quot;moderna&quot; :$f=&quot;Verdana&quot;;          $c=&quot;#cc0000&quot;;break;
default        :$f=&quot;Arial&quot;;            $c=&quot;#00cc00&quot;;break;
}
print &lt;&lt;&lt;_CSS
h1{font-family:{$f};color:{$c};}
_CSS;
?&gt;
</pre>
<p>Así, con un simple <strong>switch</strong> ajustamos el valor de las variables <strong>$f</strong> (para font-family) o <strong>$c</strong> (para color) en este sencillo ejemplo, de modo que los estilos para <strong>h1</strong> se construyen dinámicamente en función de la plantilla elegida.</p>
]]></content:encoded>
			<wfw:commentRss>http://quenerapu.com/css/hojas-de-estilo-css-dinamicas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
