<?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>JHMorales.es&#62;blog &#187; Maquetación</title>
	<atom:link href="http://www.jhmorales.es/blog/tag/maquetacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jhmorales.es/blog</link>
	<description>Cuestiones sobre diseño web</description>
	<lastBuildDate>Mon, 21 Sep 2009 14:28:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Precarga de imágenes</title>
		<link>http://www.jhmorales.es/blog/diseno-web/precarga-de-imagenes/</link>
		<comments>http://www.jhmorales.es/blog/diseno-web/precarga-de-imagenes/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 16:38:50 +0000</pubDate>
		<dc:creator>JHMorales</dc:creator>
				<category><![CDATA[Diseño-web]]></category>
		<category><![CDATA[Usabilidad]]></category>
		<category><![CDATA[Maquetación]]></category>

		<guid isPermaLink="false">http://www.jhmorales.es/blog/?p=202</guid>
		<description><![CDATA[
En El Webmaster comentan unos pocos trucos expuestos en Sentido web, originalmente mostrados en Codeitred, acerca de como optimizar la carga de nuestro sitio web.
De los allí vertidos discrepo en la implementación de uno de ellos. La precarga de imágenes creo que es mejor hacerla ocultándolas sin especificar dimensiones ya que así evitamos trabajo extra [...]]]></description>
			<content:encoded><![CDATA[<div class="col">
<p>En <a href="http://www.elwebmaster.com/articulos/optimizando-la-carga-de-nuestro-sitio-web">El Webmaster</a> comentan unos pocos trucos expuestos en <a href="http://sentidoweb.com/2008/07/09/5-consejos-para-reducir-la-carga-de-la-pagina-enfocado-a-imagenes.php">Sentido web</a>, originalmente mostrados en <a href="http://www.codeitred.com/2008/07/07/top-5-tips-decrease-load-time-websites-images">Codeitred</a>, acerca de como <strong>optimizar la carga de nuestro sitio web</strong>.</p>
<p>De los allí vertidos discrepo en la implementación de uno de ellos. La precarga de imágenes creo que es mejor hacerla <em>ocultándolas</em> sin especificar dimensiones ya que así <strong>evitamos trabajo extra del ordenador del cliente</strong>. Además tampoco generamos un elemento que, aunque tenga unas medidas mínimas como recomiendan de 1&#215;1, puede <em>alterar el orden</em> o incluso mostrarse como <em>pequeños puntos</em> en algunos navegadores.</p>
<p>Para usar este método pongo al final de la página <strong>index</strong> y antes del cierre del <em>body</em>:</p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">&lt;img class=&quot;hideimage&quot; src=&quot;images/nombre_de_la_imagen.jpg&quot; alt=&quot;texto_alternativo&quot; tit=&quot;titulo_de_la_imagen&quot;/&gt;</div>
</li>
</ol>
</div>
<p>esto lo repito con <strong>todas las imágenes</strong> que quiero <em>precargar</em>.</p>
<p>En el CSS:</p>
<div class="geshi no css">
<ol>
<li class="li1">
<div class="de1"><span class="re1">.hideimage</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Luego en cada página cada imagen tendrá su propio ID que será referenciado en el CSS:</p>
<div class="geshi no css">
<ol>
<li class="li1">
<div class="de1"><span class="re0">#foto2</span> img <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">position</span><span class="sy0">:</span> <span class="kw2">relative</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">top</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; left<span class="re2">:<span class="nu0">-5</span></span>%<span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; width<span class="re2">:<span class="nu0">100</span></span>%<span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Al no haber establecido antes un <strong>tamaño</strong> basta poner el witdth en 100% para que se establezca automáticamente el height en <em>100%</em>, de esta manera se <strong>redimensiona</strong> la imágen de acuerdo al tamaño de la pantalla. Aunque también es posible darle las medidas exactas.</p>
<p>Esta técnica está aplicada en <a href="http://www.axiscentreclinic.com">www.axiscentreclinic.com</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.jhmorales.es/blog/diseno-web/precarga-de-imagenes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comprimiendo .css y .js y almacenando en caché</title>
		<link>http://www.jhmorales.es/blog/diseno-web/comprimiendo-y-almacenando-en-cache/</link>
		<comments>http://www.jhmorales.es/blog/diseno-web/comprimiendo-y-almacenando-en-cache/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 17:05:16 +0000</pubDate>
		<dc:creator>JHMorales</dc:creator>
				<category><![CDATA[Diseño-web]]></category>
		<category><![CDATA[Usabilidad]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Maquetación]]></category>

		<guid isPermaLink="false">http://www.jhmorales.es/blog/?p=181</guid>
		<description><![CDATA[
En diseño web es de gran importancia el tiempo de descarga que necesita la web que diseñemos para mostrarse completa y operativa. Algunos disponemos de banda ancha y la diferencia entre que una web cargue en 4 segundos o en 1 no es muy apreciable. Pero en conexiones lentas, que no sean de banda ancha [...]]]></description>
			<content:encoded><![CDATA[<div class="col">
<p>En diseño web es de gran importancia el <strong>tiempo de descarga</strong> que necesita la web que diseñemos para mostrarse completa y operativa. Algunos disponemos de <strong>banda ancha</strong> y la diferencia entre que una web cargue en 4 segundos o en 1 no es muy apreciable. Pero en conexiones lentas, que no sean de banda ancha o que tengan un <strong>tiempo de respuesta</strong> muy lento por alguna razón, este tiempo se puede multiplicar por 10, 20 ó hasta por 50.</p>
<p>La &#8220;inmediatez&#8221; que implica el uso de internet en el sentido de que <em>lo que busco lo quiero ya</em>, en parte porque soy yo quien lo estoy buscando activamente -no como en el caso de la televisión que estoy esperando a recibir lo que sea que vaya a salir-, conlleva que si lo que pido <strong>tarda demasiado</strong> tengo mucho de donde escoger a pocos clicks. Por esto es necesario implementar sistemas que reduzcan ese tiempo de espera, en el caso del diseño web <strong>reutilizando recursos</strong> que son comunes en nuestro sitio en sus diferenes páginas. Estos se almacenan en el <strong>caché del navegador o del servidor</strong> y podemos mejorar este almacenamiento de manera sencilla, así esos archivos solo se descargan en la primera visita.</p>
<p>Tenemos por ejemplo un sitio con sus diferentes páginas web y sus hojas de estilo. Lo mas común es que podamos usar <strong>scripts php</strong> en nuestras páginas aunque dentro de estas no haya que hacer ningún tipo de consulta a bases de datos, ni cálculos, ni gráficas, etc. Estos scripts se ejecutan en el <strong>servidor</strong> y, para el caso que nos interesa, informarán al navegador del cliente sobre el estado de los recursos que componen la página.</p>
<p>Si tenemos una <strong>hoja de estilos .css</strong> que no cambiará en mucho tiempo podemos <strong>minimizarla, comprimirla y almacenarla</strong> en caché, esto mismo se puede hacer con los archivos de <strong>javascript</strong> que usemos. Así en futuras visitas o en las diferentes páginas que componen nuestro sitio, y usan la misma .css o .js, no será necesario descargar desde el servidor estos archivos cada vez.</p>
<p>Para minimizar la css hay varios servicios gratuitos, entre ellos <a href="http://www.lotterypost.com/css-compress.aspx"><strong>Css compressor, de Lottery post</strong></a>. Tan sencillo como copiar el código de la css, pegar en Input, picar en Compress y seleccionar todo, copiar y pegar en un documento nuevo de nuestro editor de css. Damos el mismo nombre distinguiéndolo con min, por ejemplo estilo<strong>.min.css</strong> y guardamos.</p>
<p>Para minimizar los archivos de javascript seguimos los mismos pasos pero usamos el servicio de <a href="http://fmarcia.info/jsmin/test.html"><strong>JS Minifier</strong></a>. En este caso deberemos borrar el código de ejemplo que viene en Code que es donde pegamos nuestro código js. Es recomendable dejar el nivel en &#8220;conservative&#8221; para evitar errores. Guardamos igual, por ejemplo efectos<strong>.min.js</strong>.</p>
<p>Para comprimir y almacenar en caché lo hacemos con un solo script:</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span> ?php </div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">ob_start</span> <span class="br0">&#40;</span><span class="st0">&quot;ob_gzhandler&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">header</span><span class="br0">&#40;</span><span class="st0">&quot;Content-type: text/javascript; charset: UTF-8&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">header</span><span class="br0">&#40;</span><span class="st0">&quot;Cache-Control: public, max-age=31536000&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$offset</span> <span class="sy0">=</span> <span class="nu0">60</span> <span class="sy0">*</span> <span class="nu0">60</span> <span class="sy0">*</span> <span class="nu0">24</span> <span class="sy0">*</span> <span class="nu0">30</span> <span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$ExpStr</span> <span class="sy0">=</span> <span class="st0">&quot;Expires: &quot;</span> <span class="sy0">.</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">gmdate</span><span class="br0">&#40;</span><span class="st0">&quot;D, d M Y H:i:s&quot;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">time</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="re1">$offset</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st0">&quot; GMT&quot;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">header</span><span class="br0">&#40;</span><span class="re1">$ExpStr</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p>Es imprescindible que este script vaya al comienzo del archivo antes de cualquier otra cosa. El <strong>ob_start (&#8221;ob_gzhandler&#8221;);</strong> es el que se encarga de comprimir. El resto del script es el que crea la cabecera para que el archivo sea almacenado en caché, para hojas de estilo usaremos text/css. El <strong>Cache-control: public</strong> dice al navegador que será útil para cualquier página del dominio que lo solicite, <strong>max-age</strong>=31536000 establece su fecha de caducidad en un año -en segundos-. El <strong>Expires</strong> establece su próxima revisión en un mes. Ahora el archivo lo guardamos como estilo<strong>.min.css.php</strong> o efectos<strong>.min.js.php</strong> en cada caso.</p>
<p>Ahora solo hace falta llamar a nuestro archivos desde el <strong>head</strong> de la misma manera pero con los nuevos nombres. Los javascript es mejor ponerlos al final de la página, justo <em>antes del cierre de la etiqueta body</em>, así se arma la página antes de empezar a cargar el javascript, lo que da la sensación de que termina antes de descargar. Nuestras páginas ya <strong>no deberán terminar en .htm o .html</strong> sinó en <strong>.php</strong> para que el código php introducido sea ejecutado.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.jhmorales.es/blog/diseno-web/comprimiendo-y-almacenando-en-cache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A vueltas con las resoluciones</title>
		<link>http://www.jhmorales.es/blog/diseno-web/a-vueltas-con-las-resoluciones/</link>
		<comments>http://www.jhmorales.es/blog/diseno-web/a-vueltas-con-las-resoluciones/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 09:58:36 +0000</pubDate>
		<dc:creator>JHMorales</dc:creator>
				<category><![CDATA[Diseño-web]]></category>
		<category><![CDATA[Maquetación]]></category>

		<guid isPermaLink="false">http://www.jhmorales.es/blog/?p=23</guid>
		<description><![CDATA[
Quizás una de las primeras premisas de diseño que se encuentra quien se enfrenta a hacer una nueva página o proyecto web es la resolución a la que se va a presentar esta al usuario. Es problemático hacer la página con unas dimensiones fijas debido a la gran variedad de resoluciones que existen, lo que [...]]]></description>
			<content:encoded><![CDATA[<div class="col">
<p>Quizás una de las primeras premisas de diseño que se encuentra quien se enfrenta a hacer una nueva página o proyecto web es la <strong>resolución</strong> a la que se va <strong>a presentar</strong> esta <strong>al usuario</strong>. Es <em>problemático</em> hacer la página con unas dimensiones fijas debido a la gran <a href="http://www.prismo.ch/comparisons/">variedad de resoluciones</a> que existen, lo que provoca que en la resolución escogida se vea bien pero en otras mas pequeñas no quepa y en mayores quede demasiado espacio libre.</p>
<p>Esta forma de diseñar era la usada antes cuando todo se maquetaba en tablas, aunque todavía hay algunos que montan las páginas de esta manera y ciertos programas lo hacen cuando se elabora el diseño en forma gráfica (aptos para vagos, y ya sabemos que el perezoso trabaja doble y mal). En cambio ahora el uso de los <strong>divs o cajas</strong> ha permitido usar bloques de objetos que se acomodan a la ventana en la que se presentan, ya sea por medidas en <em>porcentajes</em>, superposición de <em>capas</em> o por el uso de <em>floats</em> sin restricción.</p>
<p>Aunque la resolución más usada ahora es la 1024&#215;768 como lo podemos comprobar <a href="http://www.prismo.ch/surveys/evaluation.php">aquí</a>, <a href="http://www.w3schools.com/browsers/browsers_display.asp">aquí</a>, <a href="http://www.thecounter.com/stats/2008/November/res.php">aquí</a> y <a href="http://marketshare.hitslink.com/report.aspx?qprid=17">aquí</a>, nos encontramos con un mercado creciente tanto de portatiles con pantallas panorámicas como de grandes pantallas -panorámicas también- que se pueden usar como televisores, en ambos casos con posibilidad de mostrar altas resoluciones, y por otro lado del boom de los ultraportálies o netbooks que en gran medida regresan a resoluciones de 800&#215;600 u 800&#215;480.</p>
<p>El debate ahora está abierto entre usar un diseño <strong>líquido</strong> o uno <strong>elástico</strong> (términos, muy descriptivos por cierto, que trataré en otro artículo). El uso de los divs y la versatilidad que puede plantearse en el diseño de <em>cajas móviles</em> nos dan mas libertad a la hora de maquetar nuestras páginas pero nos obliga a tener en consideración lo que se incluirá en cada caja y la relación con las demás, esto es algo que requerirá un análisis mas sesudo (en todo se puede profundizar tanto como se quiera).</p>
<p>Para mi lo primordial para poder controlar el aspecto es poder tener un sistema que permita comprobar el diseño en diferentes resoluciones, así podemos corregir errores y <em>comportamientos extraños</em> (lease IE), para lo cual disponemos de varias herramientas. En mi caso uso, y recomiendo, tres gratuitas:</p>
<ul>
<li><a href="http://users.forthnet.gr/pat/efotinis/programs/toggleres.html">ToggleRes</a> nos permite un cambio rápido entre dos resoluciones que se pueden configurar.</li>
<li><a href="http://www.entechtaiwan.com/util/multires.shtm">MultiRes</a> nos permite cambiar la resolución a escoger entre una amplísima variedad incluyendo la tasa de refresco. Hay que configurar la pantalla para que se vea bien cada vez que se escoge una nueva resolución.</li>
<li>La extensión <a href="https://addons.mozilla.org/es-ES/firefox/addon/60">Web Developer</a> para los usuarios de Firefox, la cual trae un botón Resize que nos permite adicionar las resoluciones de pantalla que queremos representar. No cambia la resolución real de la pantalla, solo la de la ventana, por lo que tenemos que poner la resolución en la pantalla más alta a la que queremos trabajar y luego ir escogiendo en Resize para mostrar las resoluciones mas pequeñas en la ventana.</li>
</ul>
<p>Otro asunto que trataré un poco por encima luego es el de los dispositivos móviles para los que tenemos también formas de representarlos en el ordenador, así podemos comprobar como se ven nuestras páginas en ellos.
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.jhmorales.es/blog/diseno-web/a-vueltas-con-las-resoluciones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
