<?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"
	>

<channel>
	<title>knithx.net &#187; programacion</title>
	<atom:link href="http://www.knithx.net/tag/programacion/feed" rel="self" type="application/rss+xml" />
	<link>http://www.knithx.net</link>
	<description>Weblog sobre tecnología por el knithx team</description>
	<pubDate>Sun, 05 Oct 2008 12:27:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Hibridando CSS y Javascript</title>
		<link>http://www.knithx.net/2007/04/22/hibridando-css-y-javascript/</link>
		<comments>http://www.knithx.net/2007/04/22/hibridando-css-y-javascript/#comments</comments>
		<pubDate>Sun, 22 Apr 2007 11:30:36 +0000</pubDate>
		<dc:creator>knithx</dc:creator>
		
		<category><![CDATA[Diseño]]></category>

		<category><![CDATA[Interfaces]]></category>

		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://www.knithx.net/2007/04/22/hibridando-css-y-javascript/</guid>
		<description><![CDATA[Cuando se trata de modificar las propiedades de una interfaz web sin recargar el contenido de la página y mostrar los cambios de forma inmediata, una de las soluciones más aplicadas hoy en días es el uso de pequeñas rutinas en Javascript (y por extensión, el omnipresente AJAX protagonista de la Web 2.0). Los lectores [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando se trata de modificar las propiedades de una interfaz web sin recargar el contenido de la página y mostrar los cambios de forma inmediata, una de las soluciones más aplicadas hoy en días es el uso de pequeñas rutinas en Javascript (y por extensión, el omnipresente AJAX protagonista de la Web 2.0). Los lectores de knithx más asiduos habrán notado un cambio en la estructura del diseño, pasando éste de ser de dos columnas a una. El menú o barra lateral, asimismo, sigue haciendo acto de presencia, pero permanece oculta hasta que se decide lo contrario pulsando en el botón menú (situado en la parte superior del contenido), apareciendo a la derecha del contenido dando lugar a un diseño de una o dos columnas fluido según la decisión del lector.</p>
<p>En términos formales, esto se consigue gracias a la aplicación conjunta de Javascript y CSS. Como se muestra abajo, diseñé una función que modifica el ancho del div <code>content</code> de <code>100%</code> cuando la sidebar no se muestra a <code>65%</code> cuando sí lo hace. A su vez, la misma función modifica la propiedad <code>display</code> de la barra lateral, alternando los valores de por defecto a none. En resumidas cuentas: el contenido se estrecha para dar cabida al menú cuando el lector decide que se muestre, u ocupa todo el ancho de la página si el menú está oculto.</p>
<pre>
<span style="color: #000000;">&lt;script </span><span style="color: #800000;">type</span><span style="color: #000000;">=</span><span style="color: #dd0000;">&#8220;text/javascript&#8221;</span><span style="color: #000000;">&gt;</span>
<span style="color: #000000;">	</span><span style="font-weight: bold;color: #000000;">function</span><span style="color: #000000;"> showhide(id){</span>
<span style="color: #000000;">		</span><span style="font-weight: bold;color: #000000;">if</span><span style="color: #000000;"> (</span><span style="color: #008000;">document</span><span style="color: #000000;">.getElementById){</span>
<span style="color: #000000;">			obj = </span><span style="color: #008000;">document</span><span style="color: #000000;">.getElementById(id);</span>
<span style="color: #000000;">		</span><span style="font-weight: bold;color: #000000;">if</span><span style="color: #000000;"> (obj.style.display == </span><span style="color: #dd0000;">&#8220;none&#8221;</span><span style="color: #000000;">){</span>
<span style="color: #000000;">			obj.style.display = </span><span style="color: #dd0000;">&#8220;&#8221;</span><span style="color: #000000;">;</span>
<span style="color: #000000;">			</span><span style="color: #008000;">document</span><span style="color: #000000;">.getElementById(</span><span style="color: #dd0000;">&#8216;</span><span style="color: #ff00ff;">content&#8217;</span><span style="color: #000000;">).style.</span><span style="color: #800000;">width</span><span style="color: #000000;"> = </span><span style="color: #dd0000;">&#8220;65%&#8221;</span><span style="color: #000000;">;}</span>
<span style="color: #000000;">		</span><span style="font-weight: bold;color: #000000;">else</span><span style="color: #000000;"> {</span>
<span style="color: #000000;">			obj.style.display = </span><span style="color: #dd0000;">&#8220;none&#8221;</span><span style="color: #000000;">;</span>
<span style="color: #000000;">			</span><span style="color: #008000;">document</span><span style="color: #000000;">.getElementById(</span><span style="color: #dd0000;">&#8216;</span><span style="color: #ff00ff;">content&#8217;</span><span style="color: #000000;">).style.</span><span style="color: #800000;">width</span><span style="color: #000000;"> = </span><span style="color: #dd0000;">&#8220;100%&#8221;</span><span style="color: #000000;">;}</span>
<span style="color: #000000;">		}</span>
<span style="color: #000000;">	}</span>
<span style="color: #000000;">&lt;/script&gt;</span></pre>
<p>Evidentemente, esto no es más que una pequeña muestra de la modificación del estilo CSS de una página &#8220;en directo&#8221; mediante Javascript. Sobra decir que las posibilidades son infinitas, pero también es importante advertir que el abuso de código &#8220;de programa&#8221; en nuestra página puede dar lugar a incompatibilidades en diferentes exploradores y un aumento progresivo del peso del archivo si no se emplea con cuidado.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.knithx.net/2007/04/22/hibridando-css-y-javascript/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
