<?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>nexostudios</title>
	<atom:link href="http://nexostudios.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://nexostudios.com/blog</link>
	<description></description>
	<lastBuildDate>Mon, 07 May 2012 13:49:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Como Crear un Buen articulo en funcion de SEO</title>
		<link>http://nexostudios.com/blog/como-crear-un-buen-articulo-en-funcion-de-seo/</link>
		<comments>http://nexostudios.com/blog/como-crear-un-buen-articulo-en-funcion-de-seo/#comments</comments>
		<pubDate>Mon, 07 May 2012 13:48:56 +0000</pubDate>
		<dc:creator>nexostudios</dc:creator>
				<category><![CDATA[Accesibilidad]]></category>
		<category><![CDATA[Buscadores]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[De Interes]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Sitios web]]></category>

		<guid isPermaLink="false">http://nexostudios.com/blog/?p=93</guid>
		<description><![CDATA[Cosas a tener en cuenta:

1-      Utilizar palabras claves formadas por un conjunto de 3 o 5 palabras muy especificas ej: ( Jogar bingo gratis online ).

2-      Escribir siempre para personas (NUNCA SOLO PARA BUSCADORES).]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Cosas a tener en cuenta:</p>
<p>1- Utilizar palabras claves formadas por un conjunto de 3 o 5 palabras muy especificas ej: ( Jogar bingo gratis online ).<span id="more-93"></span></p>
<p>2- Escribir siempre para personas (NUNCA SOLO PARA BUSCADORES).</p>
<p>3- Si el artículo es muy largo, resumir todo al final.</p>
<p>4- Poner en Negrita, las palabras y/o frases importantes o destacadas.</p>
<p>5- Organizar el artículo en Puntos.</p>
<p>6- Explicar los puntos en párrafos cortos</p>
<p>7- Poner la información mas importante al principio</p>
<p>8- Los párrafos cortos son mas fáciles de leer</p>
<p>9- 3 o 4 frases por parrafo.</p>
<div class="shr-publisher-93"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nexostudios.com/blog/como-crear-un-buen-articulo-en-funcion-de-seo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sitios Web que son?</title>
		<link>http://nexostudios.com/blog/diseno-web-que-es/</link>
		<comments>http://nexostudios.com/blog/diseno-web-que-es/#comments</comments>
		<pubDate>Wed, 02 May 2012 23:53:07 +0000</pubDate>
		<dc:creator>nexostudios</dc:creator>
				<category><![CDATA[Accesibilidad]]></category>
		<category><![CDATA[Buscadores]]></category>
		<category><![CDATA[De Interes]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Sitios web]]></category>

		<guid isPermaLink="false">http://nexostudios.com/blog/?p=83</guid>
		<description><![CDATA[Todos navegamos por internet a diario, consultamos cientos de páginas web: vemos el tiempo, consultamos el banco, buscamoa viajes, pero.. sabe usted realmete que es una página web? Qué es una página web? Una página web es un soporte de información estructurada en formato digital. Es decir, una página web es uno o varios bloques [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div>
<div>Todos navegamos por internet a diario, consultamos cientos de <a title="páginas web" href="http://www.nexostudios.com" target="_blank">páginas web</a>: vemos el tiempo, consultamos el banco, buscamoa viajes, pero.. sabe usted realmete que es una <strong>página web</strong>?</div>
</div>
<div>
<h3><span style="color: #19b9f7;"><strong>Qué es una página web? </strong></span></h3>
<p>Una <strong>página web</strong> es un soporte de información estructurada en formato<strong> digital</strong>. Es decir, una <strong>página web</strong> es uno o varios bloques de información, ya sea textos, fotos, diagramas, <strong>gráficas</strong>, elementos multimedia, canciones, etc.. Bien estructurados y dispuestos para que sean entendibles por sus visitantes.<span id="more-83"></span> Hasta hace poco las <strong>páginas webs</strong> no eran mas que puntos de información, donde el usuario no podía interactuar, tan solo leer, oir, y extraer información. Internet ha evolucionado hacia las webs 2.0</p>
<h3><span style="color: #19b9f7;"><strong>¿Qué es una página web 2.0?</strong></span></h3>
<p>Una web 2.0 es aquella que ofrece un valor añadido al visitante, una web donde no solo extraeremos información sino que nosotros mismo podremos aportarla, interactuar con otros visitantes, compartir opiniones. Son páginas en las que el propio visitante cobra la máxima importancia y donde su implicación es vital. Internet y por tanto las páginas webs pasan de ser un formato plano, unidireccional, a ser un medio interactivo donde todos nos enriquecemos participando en el.</p>
<h3><span style="color: #19b9f7;"><strong>¿Cómo podemos visitar una página web?</strong></span></h3>
<p>Para poder visitar una página web, necesitaremos de un navegador web, un programa desarrollado para tal fin. Todos los sistemas operativos (“ordenadores”) traen algún navegador instalado por defecto, estos suelen ser: Internet Explorer, Mozilla Firefox y Safari, aun que existen bastantes mas como pueden ser: Opera ó Google Chrome. Los navegadores se componen principalmente de dos zonas bien diferenciadas, la superior donde podremos encontrar un recuadro de texto para introducir la dirección de la página web que deseamos visitar y una zona mas amplia, que será donde dicha página se abra.</p>
<h3><span style="color: #19b9f7;"><strong>¿Cómo encontrar una página si no sabes el nombre?</strong></span></h3>
<p>Para facilitarnos la vida a la hora de encontrar la información que necesitamos en Internet, existen webs llamadas “buscadores webs” que son como su nombre indica buscadores de información, en ellos introduciremos el contenido que deseamos encontrar, y dichos buscadores nos proporcionarán una lista de páginas web que posee el contenido que andamos buscando. Existen muchisimos buscadores web, siendo el mas famoso GOOGLE.</p>
<h3><span style="color: #19b9f7;"><strong>¿Cuántos tipos de páginas web existen?</strong></span></h3>
<p>Cada día existen más tipos de páginas web y realmente no se pueden categorizar matemáticamente, no obstante trataremos de ordenarlas en varios grupos: • Páginas web informativas Sitios web donde el visitante podrá consultar información. • Páginas web corporativas Son página pertenecientes a empresas o asociaciones que tratan de dar a conocer sus políticas de empresa, servicios, datos de contacto etc. • Catálogos virtuales Páginas webs en las que se exhiben productos o servicios normalmente ordenador por familias. • Tiendas virtuales Son catálogos virtuales con el añadido de que los productos y servicios exhibidos además, pueden comprarse online. • Redes sociales Una red social es un lugar de encuentro entre cientos, miles o millones de usuarios los cuales comparten experiencias, opiniones y fotografías.</p>
</div>
<div class="shr-publisher-83"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nexostudios.com/blog/diseno-web-que-es/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SLIDER (BXSLIDER) EN MAGENTO &#8211; JQUERY + PROTOTYPE</title>
		<link>http://nexostudios.com/blog/slider-bxslider-en-magento-jquery-prototype/</link>
		<comments>http://nexostudios.com/blog/slider-bxslider-en-magento-jquery-prototype/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 12:21:38 +0000</pubDate>
		<dc:creator>nexostudios</dc:creator>
				<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[Plug-In]]></category>
		<category><![CDATA[bxslider]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[slide]]></category>

		<guid isPermaLink="false">http://nexostudios.com/blog/?p=73</guid>
		<description><![CDATA[En esta oportinudad y luego de buscar un poco mucho, pude solucionar un problema que tenia en un e-commerce que estoy armando hace ya un par de meses.]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>En esta oportunidad y luego de buscar un poco mucho, pude solucionar un problema que tenía en un e-commerce que estoy armando hace ya un par de meses.</p>
<p>El problema que tenía es que al no querer utilizar algún plugin de slider que sea poco estilizable, me decidi por incluir el <a title="Bx Slider" href="http://bxslider.com/" target="_blank">bxslider</a>, que es el slide que utilizo siempre a la hora de poner un slide en algun sito para algun cliente, me parece súper eficiente, fácil de integrar y súper cuztomizable.</p>
<p>Al intentar incluir esto me encontré con el primer problema, "Prototype", si magento usa prototype, y esto es todo un tema para la gente que usa jquery ya que al tener los dos frameworks en el mismo sitio se arma un conflicto entre ellos, debido a que los 2 utilizan "$" para definir las funciones.</p>
<p><span id="more-73"></span></p>
<p>Para poder solucionar esto modifique el "jquery.js" y cambie "$" por "$j"</p>
<p>Después modifique también el "jquery.bxslider.js" haciendo lo mismo cambiando el "$" por el "$j"</p>
<p>Para insertarlo en magento abrí el archivo head.phtml e inserte el siguiente código:</p>
<p>&lt;script type="text/javascript" src="http://(TUSITIO)/html/js/lib/jqueryprototipe/jquery.js"&gt;&lt;/script&gt; //ACA INCLUIMOS EL JQUERY MODIFICADO<br />
&lt;script&gt;<br />
var $j = jQuery.noConflict(); // ACA INCLUIMOS EL "noConflict();" para no tener conflico con prototype<br />
&lt;/script&gt;<br />
&lt;script type="text/javascript" src="http://www.nexostudios.com/nexostudios.com/html/js/lib/jqueryprototipe/jquery.bxSlider.js"&gt;&lt;/script&gt; // ACA INCLUIMOS EL BXSLIDER MODIFICADO<br />
&lt;script type="text/javascript"&gt; // ACA INCLUIMOS EL SCRIPT PARA QUE FUNCIONE EL BXSLIDER<br />
$j(document).ready(function(){<br />
$j('#slider1').bxSlider({<br />
auto: true,<br />
pager: true,<br />
speed: 500,<br />
pause: 3000,<br />
});<br />
});<br />
&lt;/script&gt;</p>
<p>Y listo nuestro slider quedo funcionando en magento y sin conflictos.</p>
<p>Espero les sea de utilidad.</p>
<p>Acá les dejo los JS modificados:</p>
<p><a href="http://nexostudios.com/blog/wp-content/uploads/2011/10/jquery.js">jquery</a><br />
<a href="http://nexostudios.com/blog/wp-content/uploads/2011/10/jquery.bxSlider.js">jquery.bxSlider</a></p>
<p>Cualquier cosa comenten y les contestare en elo momento <img src='http://nexostudios.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div class="shr-publisher-73"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nexostudios.com/blog/slider-bxslider-en-magento-jquery-prototype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Club Atletico Floirda &#8211; Luchadores del tejido</title>
		<link>http://nexostudios.com/blog/club-atletico-floirda-luchadores-del-tejido/</link>
		<comments>http://nexostudios.com/blog/club-atletico-floirda-luchadores-del-tejido/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 14:26:32 +0000</pubDate>
		<dc:creator>nexostudios</dc:creator>
				<category><![CDATA[Buscadores]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[De Interes]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Sitios web]]></category>

		<guid isPermaLink="false">http://nexostudios.com/blog/?p=65</guid>
		<description><![CDATA[Hace ya mas de una semana esta en la red un nuevo sitio armado integramente en NexoStudios.com.

El Cliente necesitaba un sitio activo y dinamico, ya que el proyecto consta de un diario digital, automantenido por publicidad y donaciones.

Luchadoresdeltejido.com.uy es un diario digital con las ultimas actualizaciones semana a semana del Club Atletico Floirda pero visto desde un lado mas "Hincha"]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://nexostudios.com/blog/wp-content/uploads/2011/09/Club_Atletico_Florida-Luchadores_Del_Tejido.png"><img class="alignright size-full wp-image-68" title="Club_Atletico_Florida-Luchadores_Del_Tejido" src="http://nexostudios.com/blog/wp-content/uploads/2011/09/Club_Atletico_Florida-Luchadores_Del_Tejido.png" alt="" width="548" height="233" /></a>Hace ya mas de una semana esta en la red un nuevo sitio armado integramente en <a title="Diseño Web, Seo, Diseño Grafico, Paginas Web" href="http://www.nexostudios.com" target="_blank">NexoStudios.com</a>.</p>
<p>El Cliente necesitaba un sitio activo y dinamico, ya que el proyecto consta de un diario digital, automantenido por publicidad y donaciones.<span id="more-65"></span></p>
<p><a title="Club Atletico Florida - Luchadores Del Tejido" href="http://www.luchadoresdeltejido.com.uy/sitio" target="_blank">Luchadoresdeltejido.com.uy</a> es un diario digital con las ultimas actualizaciones semana a semana del <a title="Club Atletico Florida - Luchadores Del Tejido" href="http://www.luchadoresdeltejido.com.uy/sitio" target="_blank">Club Atletico Floirda</a> pero visto desde un lado mas "Hincha"</p>
<p>Con la participacion de varios periodistas y reconcocidos seguidores de todos los tiempos del club, Luchadores es un sitio lleno de informacion para el hincha de el club atletico en floirda y el mundo, en el que se podran encontrar: Noticias, fotos, reportajes, galerias etc etc.</p>
<p>Desde <a title="Diseño Web, Seo, Diseño Grafico, Paginas Web" href="http://www.nexostudios.com" target="_blank">NexoStudios.com</a> les deseamos el mejor de los exitos.</p>
<p>URL del sitio: <a title="Club Atletico Florida - Luchadores Del Tejido" href="http://www.luchadoresdeltejido.com.uy/sitio" target="_blank">http://www.luchadoresdeltejido.com.uy</a></p>
<div class="shr-publisher-65"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nexostudios.com/blog/club-atletico-floirda-luchadores-del-tejido/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Manuel Alvarez</title>
		<link>http://nexostudios.com/blog/manuel-alvarez/</link>
		<comments>http://nexostudios.com/blog/manuel-alvarez/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 12:56:01 +0000</pubDate>
		<dc:creator>nexostudios</dc:creator>
				<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://nexostudios.com/blog/?p=62</guid>
		<description><![CDATA[http://manuelalvarez.tk]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>http://manuelalvarez.tk</p>
<div class="shr-publisher-62"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nexostudios.com/blog/manuel-alvarez/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Overflow:auto;&#8221; una solucion para el &#8220;float&#8221;</title>
		<link>http://nexostudios.com/blog/overflowauto-una-solucion-para-el-float/</link>
		<comments>http://nexostudios.com/blog/overflowauto-una-solucion-para-el-float/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 00:15:39 +0000</pubDate>
		<dc:creator>nexostudios</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[float]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Overflow:auto]]></category>

		<guid isPermaLink="false">http://nexostudios.com/blog/?p=18</guid>
		<description><![CDATA[Como muchos saben y experimentan a diario cuando tenemos 2 bloques de contenido dentro de uno exterior Ej.: &#60;div class="content"&#62; &#60;div class="block-left"&#62; &#60;/div&#62; &#60;div class="block-right"&#62; &#60;/div&#62; &#60;/div&#62; Lo que naturalmente se utiliza es para que queden un bloque flotado a la izquierda y el otro a la derecha se les agrega el estilo: float: left [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:HyphenationZone>21</w:HyphenationZone> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabla normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} --> <!--[endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:HyphenationZone>21</w:HyphenationZone> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]><br />
<mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabla normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} --></p>
<p><!--[endif]-->Como muchos saben y experimentan a diario cuando tenemos 2 bloques de contenido dentro de uno exterior Ej.:</p>
<p><span lang="EN-GB">&lt;div class="content"&gt;<br />
&lt;div class="block-left"&gt;<br />
&lt;/div&gt;<br />
&lt;div class="block-right"&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;</span></p>
<p>Lo que naturalmente se utiliza es para que queden un bloque flotado a la izquierda y el otro a la derecha se les agrega el estilo: float: left o float:right; según sea el caso.<span id="more-18"></span></p>
<p>El problema que esto nos trae es que el div que esta por afuera no se dibuja en los navegadores como tendría que hacerlo ya que como los bloques internos están flotados, el navegador supone que el contenido no tiene alto, un solución muy conocida es utilizar un div vacío con un style="clear:both" que soluciona a la perfección pero a la hora de un sitio complejo en el que se utilizan muchas cosas flotando se generan muchos divs vacíos tornando nuestro código en un poco confuso y entreverado.</p>
<p>Una buena solución a este problema es como dice el titulo usar el style="overflow:auto;" en el bloque que en este caso llamamos con una class="content" esto lo que hace es que el navegador independientemente de si los divs internos a este estén flotados o no toma el alto de estos para así dibujarse.</p>
<p>Una de las cosas a tener en cuenta es que si le agregamos un alto fijo al contenedor menor que el alto de los div internos esto nos generara una barra de scrool a la derecha.</p>
<p>Otro de los problemas es que si queremos sacar un div para afuera con un position: absolut; o algún tipo de estilo así también nos generara un scroll.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">&lt;div class="content"&gt;<br />
&lt;div class="block-left"&gt;<br />
&lt;/div&gt;<br />
&lt;div class="block-right"&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;</div>
<div class="shr-publisher-18"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nexostudios.com/blog/overflowauto-una-solucion-para-el-float/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash CS5 convertirá animaciones flash en HTML5</title>
		<link>http://nexostudios.com/blog/48/</link>
		<comments>http://nexostudios.com/blog/48/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 15:35:51 +0000</pubDate>
		<dc:creator>nexostudios</dc:creator>
				<category><![CDATA[Adobe]]></category>

		<guid isPermaLink="false">http://nexostudios.com/blog/?p=48</guid>
		<description><![CDATA[A pocos días del estreno oficial de la suite CS5, Adobe ha dado a conocer una nueva función dentro de Flash CS5, muy arriesgada pero muy inteligente a la vez. Se trata de una herramienta que convertirá las animaciones Flash a HTML5 Canvas. Un audaz movimiento de parte de Adobe pues vendría siendo, por decirlo [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>A pocos días del estreno oficial de la suite CS5, Adobe ha dado a  conocer una nueva función dentro de Flash CS5, muy arriesgada pero muy  inteligente a la vez.</p>
<p>Se trata de una herramienta que convertirá las animaciones Flash a  HTML5 Canvas. Un audaz movimiento de parte de Adobe pues vendría siendo,  por decirlo de una forma simple, matar definitivamente el plugin flash  pero mantener el lenguaje de programación para desarrolladores y a la  vez seguir imprimiendo dinero para la firma.</p>
<p><span id="more-48"></span></p>
<p>Es una situación win-win para Adobe, desarrolladores y usuarios.</p>
<p>Flash CS5 permitirá, entonces, a los desarrolladores, exportar sus  antiguas o nuevas animaciones directamente a código HTML5 con un simple  copy/paste. Por otro lado, mientras los usuarios tengan un browser  compatible con HTLM5 podrán navegar felizmente por cualquiera de estas  páginas sin necesidad de tener Flash instalado.</p>
<p>Ahora que todos los navegadores importantes soportan HTML5, y con IE9 en  camino (si es que alguien lo estuviera esperando) con soporte para el  nuevo estándar, los desarrolladores se irán de juega con esta noticia,  podrán hacer viables sus antiguas animaciones y páginas hechas en flash  sin preocuparse si el visitante tendrá instalado el plugin.</p>
<p>A continuación un video demostrativo (a partir del minuto 3 en  adelante), aunque ojo, el inglés del presentador deja harto que desear:<a href="http://www.youtube.com/watch?v=v69S22ZBBqA&amp;feature=player_embedded">Flash CS5 will export to HTML5 Canvas</a></p>
<div class="shr-publisher-48"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nexostudios.com/blog/48/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sencha Touch: Crea aplicaciones para dispositivos móviles en HTML5</title>
		<link>http://nexostudios.com/blog/sencha-touch-crea-aplicaciones-para-dispositivos-moviles-en-html5/</link>
		<comments>http://nexostudios.com/blog/sencha-touch-crea-aplicaciones-para-dispositivos-moviles-en-html5/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 20:36:44 +0000</pubDate>
		<dc:creator>nexostudios</dc:creator>
				<category><![CDATA[Accesibilidad]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Navegadores]]></category>

		<guid isPermaLink="false">http://nexostudios.com/blog/?p=42</guid>
		<description><![CDATA[Sencha Touch es el primer framework HTML5 pensado para desarrollar aplicaciones web para dispositivos móviles con efectos que aparentan ser los nativos de los sistemas operativos IOS y Google Android, se trata de la primera aplicación que nace desde la unión de Ext JS con jQTouch y Raphaël con el nombre de Sencha. Este framework [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><strong>Sencha Touch</strong> es el primer <strong>framework HTML5</strong> pensado para <strong>desarrollar aplicaciones web para dispositivos móviles</strong> con efectos que aparentan ser los nativos de los sistemas operativos  IOS y Google Android, se trata de la primera aplicación que nace desde  la unión de Ext JS con  jQTouch y Raphaël con el nombre de Sencha.</p>
<p>Este framework te proporcionará un librería con <strong>múltiples widgets de usuario</strong>, control para los eventos táctiles de los dispositivos móviles con <strong>efectos muy agradables</strong> gracias a CSS3, está creada para aprovechar al máximo el potencial de  HTML5, CSS3, y Javascript permitiendo la introducción de vídeo y audio  así como también dispone de un proxy local para guardar datos sin  conexión, los desarrolladores que utilicen esta herramienta podrán  solicitar los datos mediante  Ajax, JSONp o YQL.</p>
<p><img title="Sencha Touch" src="http://www.dacostabalboa.com/es/imagenes/sencha-touch.jpg" alt="" width="527" height="237" /><span id="more-42"></span></p>
<p>Sencha touch se aprovecha de la tecnología SASS para que con solo  cambiar unas variables podamos cambiar totalmente la presentación de la  aplicación, además el propio Framework <strong>se adaptará a las resoluciones</strong> de cada pantalla para que se pueda visualizar correctamente en la gran variedad de dispositivos del mercado.</p>
<p>Si estás pensando en desarrollar una aplicación web para móviles te  recomiendo que lo pruebes, solo pesa 80kb y te permite ofrecer al  usuario una interfaz muy amigable y sencilla.</p>
<p>Página oficial: <a title="Sencha Touch" href="http://www.sencha.com/products/touch/" target="_blank">Sencha Touch</a></p>
<div class="shr-publisher-42"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nexostudios.com/blog/sencha-touch-crea-aplicaciones-para-dispositivos-moviles-en-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox 4 Beta 1 disponible para descargar, ¿a ver que tal te funciona?</title>
		<link>http://nexostudios.com/blog/firefox-4-beta-1-disponible-para-descargar-%c2%bfa-ver-que-tal-te-funciona/</link>
		<comments>http://nexostudios.com/blog/firefox-4-beta-1-disponible-para-descargar-%c2%bfa-ver-que-tal-te-funciona/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 20:24:09 +0000</pubDate>
		<dc:creator>nexostudios</dc:creator>
				<category><![CDATA[Accesibilidad]]></category>
		<category><![CDATA[De Interes]]></category>
		<category><![CDATA[Navegadores]]></category>

		<guid isPermaLink="false">http://nexostudios.com/blog/?p=37</guid>
		<description><![CDATA[Damas y caballeros lo que muchos consumidores intensivos de Internet veníamos esperando desde hacía algún tiempo acaba de llegar, me estoy refiriendo a la primera versión Beta del navegador web Firefox 4 la cual Mozilla ha liberado hace unas pocas horas (tanto para Windows como para Mac y Linux). ¿Y qué trae de nuevo esta [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://nexostudios.com/blog/wp-content/uploads/2010/09/firefox-4-beta.jpg"><img class="alignright size-full wp-image-38" title="firefox-4-beta" src="http://nexostudios.com/blog/wp-content/uploads/2010/09/firefox-4-beta.jpg" alt="" width="380" height="216" /></a>Damas y caballeros lo que muchos consumidores intensivos de Internet  veníamos esperando desde hacía algún tiempo acaba de llegar, me estoy  refiriendo a la <strong>primera versión Beta del navegador web Firefox 4 la cual Mozilla ha liberado hace unas pocas horas</strong> (tanto <a href="https://www.mozilla.com/products/download.html?product=firefox-4.0b1&amp;os=win&amp;lang=en-US">para Windows</a> como <a href="https://www.mozilla.com/products/download.html?product=firefox-4.0b1&amp;os=osx&amp;lang=en-US">para Mac</a> y <a href="https://www.mozilla.com/products/download.html?product=firefox-4.0b1&amp;os=linux&amp;lang=en-US">Linux</a>).  ¿Y qué trae de nuevo esta primera Beta de la versión 4 de Firefox? Pues  bastantes cosas -aunque no todas las que llevará la versión final  obviamente- y de entre todas dos destacan sin duda sobre el resto.</p>
<p>Lo primero que uno nota nada más que empieza a cacharrear con esta primera Beta, al menos en mi caso, es que <strong>realmente va mucho más fluida que los anteriores Firefox</strong> (a pesar de que el consumo de recursos sigue siendo demasiado alto). El segundo punto que más destaca de la Beta 1 es el <strong>rediseño completo que han realizado de la interfaz</strong> -en la versión de Mac y Linux sigue implementada la anterior- el cual  personalmente me gusta y me parece mucho más usable que el de antes (por  ejemplo las pestañas pasan a estar en la parte de arriba o ahora en  cada pestaña hay un indicador del progreso de carga<span id="more-37"></span> de la web que  estemos abriendo).  Además de estos dos “pilares principales” Firefox 4  Beta 1 viene con un montón de mejoras más, algunas de ellas enumeradas  rápidamente:</p>
<ul>
<li>El gestor de complementos cambia por completo</li>
<li>Soporte nativo para WebM y aceleración de vídeo por <em>hardware</em></li>
<li>Mejora el soporte de HTML5 y CSS3</li>
<li>Añaden “protección contra fallos”, es decir que cuando se bloquee un <em>plugin</em> o similares el navegador no romperá del todo y podremos eguir navegando</li>
<li>Mejoras en la gestión de privacidad</li>
<li>Para los desarrolladores añaden un montón de cosas interesantes como soporte para <a href="http://hacks.mozilla.org/2010/04/websockets-in-firefox/">WebSockets</a>, <a href="http://code.google.com/p/indexeddb/">IndexedDB</a> o <a href="https://jetpack.mozillalabs.com/">JetPack SDK</a></li>
</ul>
<p>Aunque no he probado lo suficiente todavía esta Beta como para soltar  una valoración contundente sobre la misma, si que creo que los de  Mozilla han conseguido, o como poco van por buen camino, solucionar uno  de los aspectos en los que sin duda estaban fallando y que más daño les  estaba haciendo: la mala velocidad de apertura-cierre-navegación. Por  otro lado también hay que tener en cuenta antes de empezar con los  juicios que estamos ante una primera Beta de lo que se desprende que a  Firefox 4 todavía le queda bastante camino por recorrer.</p>
<p>Termino con la pregunta que el tema claramente está pidiendo a gritos: <strong>¿a ti que tal te está funcionan Firefox 4 Beta 1?</strong> Quedan abiertos los comentarios como siempre.</p>
<p>Vía: <a href="http://bitelia.com/2010/07/desarrolladores-descarguen-firefox-4-beta-1-es-mas-que-otra-cara-bonita">Bitelia</a></p>
<div class="shr-publisher-37"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nexostudios.com/blog/firefox-4-beta-1-disponible-para-descargar-%c2%bfa-ver-que-tal-te-funciona/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zen Coding: A Speedy Way To Write HTML/CSS Code</title>
		<link>http://nexostudios.com/blog/zen-coding-a-speedy-way-to-write-htmlcss-code/</link>
		<comments>http://nexostudios.com/blog/zen-coding-a-speedy-way-to-write-htmlcss-code/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 20:34:40 +0000</pubDate>
		<dc:creator>nexostudios</dc:creator>
				<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://nexostudios.com/blog/?p=33</guid>
		<description><![CDATA[En este post se presenta una nueva forma rápida de escribir código HTML utilizando la sintaxis de selector CSS-como - un conjunto de herramientas útiles para la alta velocidad de codificación HTML y CSS. Ha sido desarrollado por nuestro autor,  Serguéi Chikuyonok. ¿Cuánto tiempo le dedicas a escribir código HTML: todas esas etiquetas, atributos, citas, [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>En  este post se presenta una nueva forma rápida de escribir código HTML  utilizando la sintaxis de selector CSS-como - un conjunto de  herramientas útiles para la alta velocidad de codificación HTML y CSS. Ha sido desarrollado por nuestro autor,  Serguéi Chikuyonok.</p>
<p>¿Cuánto  tiempo le dedicas a escribir código HTML: todas esas etiquetas,  atributos, citas, tirantes, etc Usted tiene más fácil si su editor de  elección ha completado con el código, pero aún así hacer un montón de  escribir.</p>
<p>Tuvimos el mismo problema en el mundo de JavaScript al que queríamos tener acceso a un elemento específico en una página Web. Teníamos que escribir mucho código, que se convirtió en realmente difícil el apoyo y la reutilización. Y entonces llegó frameworks de JavaScript, CSS, que introdujo los motores de selector. Ahora, puede utilizar expresiones CSS sencilla de acceder a los elementos DOM, que está muy bien.</p>
<p>Pero  ¿qué pasa si usted podría utilizar no sólo para los selectores CSS  estilo y elementos de acceso, pero para generar el código? Por ejemplo, ¿qué pasa si usted podría escribir esto ...</p>
<p>div # content&gt; h1 + p</p>
<p>... Y ver esto como la salida?<br />
ver el código fuente<br />
de impresión?<br />
1 &lt;div id="content"&gt;<br />
2 &lt;h1&gt; &lt;/ h1&gt;<br />
3 &lt;p&gt; / p&gt;<br />
4 &lt;/ div&gt;</p>
<p><span id="more-33"></span></p>
<p>Hoy  voy a presentar a Zen codificación de mercancías, un conjunto de  herramientas para la alta velocidad de codificación HTML y CSS. Originalmente  propuesto por Vadim Makeev (artículo en ruso) en abril de 2009, se ha  desarrollado para su seguridad (es decir yo) de los últimos meses y  finalmente ha llegado a un estado maduro. Codificación  Zen consiste en dos componentes principales: un expansor abreviatura  (abreviaturas son selectores CSS-similar) y Matcher-par de etiquetas  HTML independiente del contexto. Vea este vídeo de demostración para ver lo que pueden hacer por usted.</p>
<p>Si desea  omitir las instrucciones detalladas y una guía de uso, por favor, eche  un vistazo a la demo y descargar el plugin de inmediato:</p>
<h4>Demo</h4>
<ul>
<li><a href="http://zen-coding.ru/demo/">Demo</a> (use <em>Ctrl + ,</em> to expand an abbreviation, requires JavaScript)</li>
</ul>
<h4>Downloads (Full Support)</h4>
<ul>
<li><a href="http://code.google.com/p/zen-coding/downloads/detail?name=Zen.Coding-Aptana.v0.5.zip">Aptana</a> (cross-platform);</li>
<li>Coda, via <a href="http://github.com/sergeche/tea-for-coda/downloads">TEA for Coda</a> (Mac);</li>
<li>Espresso, via <a href="http://github.com/sergeche/tea-for-espresso/downloads">TEA for Espresso</a> (Mac);</li>
</ul>
<h4>Downloads (Partial Support, “Expand Abbreviation” Only)</h4>
<ul>
<li><a href="http://code.google.com/p/zen-coding/downloads/detail?name=Zen%20Coding%20for%20TextMate%20v0.3.1.zip">TextMate</a> (Mac, and can be used with E-text editor for Windows);</li>
<li><a href="http://code.google.com/p/zen-coding/downloads/detail?name=TopStyle.Zen.Coding.1.0.zip">TopStyle</a>;</li>
<li><a href="http://code.google.com/p/zen-coding/downloads/detail?name=Sublime.Zen.Coding.1.1.3.zip">Sublime Text</a>;</li>
<li><a href="http://www.kryogenix.org/days/2009/09/21/zen-coding-for-gedit">GEdit</a>;</li>
<li><a href="http://zen-coding.ru/demo/">editArea online editor</a>;</li>
</ul>
<p>Now, let’s see how these tools work.</p>
<p>[Offtopic: by the way, did you know that there is a Smashing eBook Series? Book #1 is <a href="http://shop.smashingmagazine.com/smashing-ebook-series-1-professional-web-design-intl.html">Professional Web Design</a>, 242 pages for just $9,90.]</p>
<h3>Expand Abbreviation</h3>
<p>The  Expand Abbreviation function transforms CSS-like selectors into XHTML  code. The term “abbreviation” might be a little confusing. Why not just  call it a “CSS selector”? Well, the first reason is semantic: “selector”  means to <em>select</em> something, but here we’re actually <em>generating</em> something, <strong>writing a shorter representation of longer code</strong>. Secondly, it supports only a small subset of real CSS selector syntax, in addition to introducing some new operators.</p>
<p>Here is a list of supported properties and operators:</p>
<ul>
<li>E<br />
Element name (<code>div</code>, <code>p</code>);</li>
<li>E#id<br />
Element with identifier (<code>div#content</code>, <code>p#intro</code>, <code>span#error</code>);</li>
<li>E.class<br />
Element with classes (<code>div.header</code>, <code>p.error.critial</code>). You can combine classes and IDs, too: <code>div#content.column.width</code>;</li>
<li>E&gt;N<br />
Child element (<code>div&gt;p</code>, <code>div#footer&gt;p&gt;span</code>);</li>
<li>E+N<br />
Sibling element (<code>h1+p</code>, <code>div#header+div#content+div#footer</code>);</li>
<li>E*N<br />
Element multiplication (<code>ul#nav&gt;li*5&gt;a</code>);</li>
<li>E$*N<br />
Item numbering (<code>ul#nav&gt;li.item-$*5</code>);</li>
</ul>
<p>As  you can see, you already know how to use Zen Coding: just write a  simple CSS-like selector (oh, “abbreviation”—sorry), like so…</p>
<div id="highlighter_339331">
<div>
<div><a title="view source" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#viewSource">view source</a></p>
<div><object id="highlighter_339331_clipboard" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="16" height="16" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="highlighterId=highlighter_339331" /><param name="src" value="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" /><param name="wmode" value="transparent" /><embed id="highlighter_339331_clipboard" type="application/x-shockwave-flash" width="16" height="16" src="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" wmode="transparent" flashvars="highlighterId=highlighter_339331"></embed></object></div>
<p><a title="print" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#printSource">print</a><a title="?" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#about">?</a></p>
</div>
</div>
<div>
<div>
<table>
<tbody>
<tr>
<td><code>1</code></td>
<td><code>div#header&gt;img.logo+ul#nav&gt;li*4&gt;a</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>…and then call the Expand Abbreviation action.</p>
<p>There are two custom operators: element multiplication and item numbering. If you want to generate, for example, five <code>&lt;li&gt;</code> elements, you would simply write <code>li*5</code>. It would repeat all descendant elements as well. If you wanted four <code>&lt;li&gt;</code> elements, with an <code>&lt;a&gt;</code> in each, you would simply write <code>li*4&gt;a</code>, which would generate the following output:</p>
<div id="highlighter_707737">
<div>
<div><a title="view source" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#viewSource">view source</a></p>
<div><object id="highlighter_707737_clipboard" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="16" height="16" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="highlighterId=highlighter_707737" /><param name="src" value="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" /><param name="wmode" value="transparent" /><embed id="highlighter_707737_clipboard" type="application/x-shockwave-flash" width="16" height="16" src="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" wmode="transparent" flashvars="highlighterId=highlighter_707737"></embed></object></div>
<p><a title="print" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#printSource">print</a><a title="?" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#about">?</a></p>
</div>
</div>
<div>
<div>
<table>
<tbody>
<tr>
<td><code>1</code></td>
<td><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>a</code> <code>href</code><code>=</code><code>""</code><code>&gt;&lt;/</code><code>a</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>2</code></td>
<td><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>a</code> <code>href</code><code>=</code><code>""</code><code>&gt;&lt;/</code><code>a</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>3</code></td>
<td><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>a</code> <code>href</code><code>=</code><code>""</code><code>&gt;&lt;/</code><code>a</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>4</code></td>
<td><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>a</code> <code>href</code><code>=</code><code>""</code><code>&gt;&lt;/</code><code>a</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>The last one–item numbering is used when you want to mark a repeated element with its index. Suppose you want to generate three <code>&lt;div&gt;</code> elements with <code>item1</code>, <code>item2</code> and <code>item3</code> classes. You would write this abbreviation, <code>div.item$*3</code>:</p>
<div id="highlighter_351169">
<div>
<div><a title="view source" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#viewSource">view source</a></p>
<div><object id="highlighter_351169_clipboard" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="16" height="16" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="highlighterId=highlighter_351169" /><param name="src" value="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" /><param name="wmode" value="transparent" /><embed id="highlighter_351169_clipboard" type="application/x-shockwave-flash" width="16" height="16" src="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" wmode="transparent" flashvars="highlighterId=highlighter_351169"></embed></object></div>
<p><a title="print" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#printSource">print</a><a title="?" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#about">?</a></p>
</div>
</div>
<div>
<div>
<table>
<tbody>
<tr>
<td><code>1</code></td>
<td><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"item1"</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>2</code></td>
<td><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"item2"</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>3</code></td>
<td><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"item3"</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>Just  add a dollar sign wherever in the class or ID property that you want  the index to appear, and as many an you want. So, this…</p>
<div id="highlighter_615157">
<div>
<div><a title="view source" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#viewSource">view source</a></p>
<div><object id="highlighter_615157_clipboard" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="16" height="16" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="highlighterId=highlighter_615157" /><param name="src" value="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" /><param name="wmode" value="transparent" /><embed id="highlighter_615157_clipboard" type="application/x-shockwave-flash" width="16" height="16" src="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" wmode="transparent" flashvars="highlighterId=highlighter_615157"></embed></object></div>
<p><a title="print" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#printSource">print</a><a title="?" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#about">?</a></p>
</div>
</div>
<div>
<div>
<table>
<tbody>
<tr>
<td><code>1</code></td>
<td><code>div#i$-test.class$$$*5</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>would be transformed into:</p>
<div id="highlighter_70020">
<div>
<div><a title="view source" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#viewSource">view source</a></p>
<div><object id="highlighter_70020_clipboard" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="16" height="16" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="highlighterId=highlighter_70020" /><param name="src" value="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" /><param name="wmode" value="transparent" /><embed id="highlighter_70020_clipboard" type="application/x-shockwave-flash" width="16" height="16" src="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" wmode="transparent" flashvars="highlighterId=highlighter_70020"></embed></object></div>
<p><a title="print" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#printSource">print</a><a title="?" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#about">?</a></p>
</div>
</div>
<div>
<div>
<table>
<tbody>
<tr>
<td><code>1</code></td>
<td><code>&lt;</code><code>div</code> <code>id</code><code>=</code><code>"i1-test"</code> <code>class</code><code>=</code><code>"class111"</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>2</code></td>
<td><code>&lt;</code><code>div</code> <code>id</code><code>=</code><code>"i2-test"</code> <code>class</code><code>=</code><code>"class222"</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>3</code></td>
<td><code>&lt;</code><code>div</code> <code>id</code><code>=</code><code>"i3-test"</code> <code>class</code><code>=</code><code>"class333"</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>4</code></td>
<td><code>&lt;</code><code>div</code> <code>id</code><code>=</code><code>"i4-test"</code> <code>class</code><code>=</code><code>"class444"</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>5</code></td>
<td><code>&lt;</code><code>div</code> <code>id</code><code>=</code><code>"i5-test"</code> <code>class</code><code>=</code><code>"class555"</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>You’ll see that when you write the <code>a</code> abbreviation, the output is <code>&lt;a href=""&gt;&lt;/a&gt;</code>. Or, if you write <code>img</code>, the output is <code>&lt;img src="" alt="" /&gt;</code>.</p>
<p>How  does Zen Coding know when it should add default attributes to the  generated tag or skip the closing tag? A special file, called <em><a href="http://code.google.com/p/zen-coding/source/browse/branches/serge.che/aptana/zen_settings.js">zen_settings.js</a></em> describes the outputted elements. It’s a simple JSON file that  describes the abbreviations for each language (yes, you can define  abbreviations for different syntaxes, such as HTML, XSL, CSS, etc.). The  common language abbreviations definition looks like this:</p>
<div id="highlighter_463194">
<div>
<div><a title="view source" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#viewSource">view source</a></p>
<div><object id="highlighter_463194_clipboard" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="16" height="16" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="highlighterId=highlighter_463194" /><param name="src" value="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" /><param name="wmode" value="transparent" /><embed id="highlighter_463194_clipboard" type="application/x-shockwave-flash" width="16" height="16" src="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" wmode="transparent" flashvars="highlighterId=highlighter_463194"></embed></object></div>
<p><a title="print" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#printSource">print</a><a title="?" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#about">?</a></p>
</div>
</div>
<div>
<div>
<table>
<tbody>
<tr>
<td><code>01</code></td>
<td><code>'html'</code><code>: {</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>02</code></td>
<td><code>'snippets'</code><code>: {</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>03</code></td>
<td><code>'cc:ie6'</code><code>: </code><code>'&lt;!--[if lte IE 6]&gt;\n\t${child}|\n&lt;![endif]--&gt;'</code><code>,</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>04</code></td>
<td><code>...</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>05</code></td>
<td><code>}, </code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>06</code></td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>07</code></td>
<td><code>'abbreviations'</code><code>: {</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>08</code></td>
<td><code>'a'</code><code>: </code><code>'&lt;a href=""&gt;&lt;/a&gt;'</code><code>,</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>09</code></td>
<td><code>'img'</code><code>: </code><code>'&lt;img src="" alt="" /&gt;'</code><code>,</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>10</code></td>
<td><code>...</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>11</code></td>
<td><code>}</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>12</code></td>
<td><code>}</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h4>Element Types</h4>
<p>Zen Coding has two major element types: <strong>“snippets” and “abbreviations.”</strong> Snippets are arbitrary code fragments, while abbreviations are tag  definitions. With snippets, you can write anything you want, and it will  be outputted as is; but you have to manually format it (using <code>\n</code> and <code>\t</code> for new lines and indentation) and put the <code>${child}</code> variable where you want to output the child elements, like so: <code>cc:ie6&gt;style</code>. If you don’t include the <code>${child}</code> variable, the child elements are outputted <em>after</em> the snippet.</p>
<p>With  abbreviations, you have to write tag definitions, and the syntax is  very important. Normally, you have to write a simple tag with all  default attributes in it, like so: <code>&lt;a href=""&gt;&lt;/a&gt;</code>.  When Zen Coding is loaded, it parses a tag definition into a special  object that describes the tag’s name, attributes (including their order)  and whether the tag is empty. So, if you wrote <code>&lt;img src="" alt="" /&gt;</code>,  you would be telling Zen Coding that this tag must be empty, and the  “Expand Abbreviation” action would apply special rules to it before  outputting.</p>
<p>For both snippets and abbreviations, you can ad a pipe  character (|), which tells Zen Coding where it should place the cursor  when the abbreviation is expanded. By default, Zen Coding puts the  cursor between quotes in empty attributes and between the opening and  closing tag.</p>
<h4>Example</h4>
<p>So, here’s what happens when you  write an abbreviation and call the “Expand Abbreviation” action. First,  it splits a whole abbreviation into separate elements: so, <code>div&gt;a</code> would be split into <code>div</code> and <code>a</code> elements, with their relationship preserved. Then, for each element,  the parser looks for a definition inside the snippets and then inside  the abbreviations. If it doesn’t find one, it uses the element’s name as  the name for the new tag, applying ID and class attributes to it. For  example, if you write <code>mytag#example</code>, and the parser cannot find the <code>mytag</code> definition among the snippets or abbreviation, it will output <code>&lt;mytag id="example"&gt;&lt;mytag&gt;</code>.</p>
<p>We have made a lot of <a href="http://code.google.com/p/zen-coding/wiki/ZenCSSPropertiesEn">default CSS</a> and <a href="http://code.google.com/p/zen-coding/wiki/ZenHTMLElementsEn">HTML abbreviations and snippets</a>. You may find that learning them increases your productivity with Zen Coding.</p>
<h3>HTML Pair Matcher</h3>
<p>Another  very common task for the HTML coder is to find the tag pair of an  element (also known as “balancing”). Let’s say you want to select the  entire <code>&lt;div id="content"&gt;</code> tag and move it elsewhere  or just delete it. Or perhaps you’re looking at a closing tag and want  to known which opening tag it belongs to.</p>
<p>Unfortunately, many  modern development tools lack support for this feature. So, I decided to  write my own tag matcher as part of Zen Coding. It is still in beta and  has some issues, but it works quite well and is fast. Instead of  scanning the full document (as regular HTML pair matchers do), it finds  the relevant tag from the cursor’s current position. This makes it very  fast and <em>context-independent</em>: it works even with this <strong>JavaScript code snippet</strong>:</p>
<div id="highlighter_751422">
<div>
<div><a title="view source" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#viewSource">view source</a></p>
<div><object id="highlighter_751422_clipboard" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="16" height="16" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="highlighterId=highlighter_751422" /><param name="src" value="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" /><param name="wmode" value="transparent" /><embed id="highlighter_751422_clipboard" type="application/x-shockwave-flash" width="16" height="16" src="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" wmode="transparent" flashvars="highlighterId=highlighter_751422"></embed></object></div>
<p><a title="print" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#printSource">print</a><a title="?" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#about">?</a></p>
</div>
</div>
<div>
<div>
<table>
<tbody>
<tr>
<td><code>1</code></td>
<td><code>var</code> <code>table = </code><code>'&lt;table&gt;'</code><code>;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>2</code></td>
<td><code>for</code> <code>(</code><code>var</code> <code>i = 0; i &lt; 3; i++) {</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>3</code></td>
<td><code>table += </code><code>'&lt;tr&gt;'</code><code>;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>4</code></td>
<td><code>for</code> <code>(</code><code>var</code> <code>j = 0; j &lt; 5; j++) {</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>5</code></td>
<td><code>table += </code><code>'&lt;td&gt;'</code> <code>+ j + </code><code>'&lt;/td&gt;'</code><code>;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>6</code></td>
<td><code>}</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>7</code></td>
<td><code>table += </code><code>'&lt;/tr&gt;'</code><code>;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>8</code></td>
<td><code>}</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>9</code></td>
<td><code>table += </code><code>'&lt;/table&gt;'</code><code>;</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3>Wrapping With Abbreviation</h3>
<p>This  is a really cool feature that combines the power of the abbreviation  expander with the pair tag matcher. How many times have you found that  you have to <strong>add a wrapping element to fix a browser bug</strong>?  Or perhaps you have had to add decoration, such as a background image  or border, to a block’s content? You have to write the opening tag,  temporarily break your code, find the appropriate spot and then close  the tag. Here’s where “Wrap with Abbreviation” helps.</p>
<p>This  function is pretty simple: it asks you to enter the abbreviation, then  it performs the regular “Expand Abbreviation” action and puts your  desired text <em>inside the last element</em> of your abbreviation. If  you haven’t selected any text, it fires up the pair matcher and use the  result. It also makes sense of where your cursor is: inside the tag’s  content or within the opening and closing tag. Depending on where it is,  it wraps the tag’s content or the tag itself.</p>
<p>Abbreviation  wrapping introduces a special abbreviation syntax for wrapping  individual lines. Simply skip the number after the multiplication  operator, like so: <code>ul#nav&gt;li*&gt;a</code>. When Zen Coding finds an element with an undefined multiplication number, it uses it as a <em>repeating element</em>: it is outputted as many times as there are lines in your selection, putting the content of each line inside the <em>deepest child</em> of the repeating element.</p>
<p>If you’ll wrap this abbreviation <code>div#header&gt;ul#navigation&gt;li.item$*&gt;a&gt;span</code> around this text…</p>
<pre>About Us
Products
News
Blog
Contact Up</pre>
<p>You’ll get the following result:</p>
<div id="highlighter_145704">
<div>
<div><a title="view source" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#viewSource">view source</a></p>
<div><object id="highlighter_145704_clipboard" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="16" height="16" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="highlighterId=highlighter_145704" /><param name="src" value="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" /><param name="wmode" value="transparent" /><embed id="highlighter_145704_clipboard" type="application/x-shockwave-flash" width="16" height="16" src="http://media.smashingmagazine.com/cdn_smash/wp-content/themes/default-autosvn-stable/js/sh/clipboard.swf" wmode="transparent" flashvars="highlighterId=highlighter_145704"></embed></object></div>
<p><a title="print" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#printSource">print</a><a title="?" href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/#about">?</a></p>
</div>
</div>
<div>
<div>
<table>
<tbody>
<tr>
<td><code>1</code></td>
<td><code>&lt;</code><code>div</code> <code>id</code><code>=</code><code>"header"</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>2</code></td>
<td><code>&lt;</code><code>ul</code> <code>id</code><code>=</code><code>"navigation"</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>3</code></td>
<td><code>&lt;</code><code>li</code> <code>class</code><code>=</code><code>"item1"</code><code>&gt;&lt;</code><code>a</code> <code>href</code><code>=</code><code>""</code><code>&gt;&lt;</code><code>span</code><code>&gt;About Us&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>a</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>4</code></td>
<td><code>&lt;</code><code>li</code> <code>class</code><code>=</code><code>"item2"</code><code>&gt;&lt;</code><code>a</code> <code>href</code><code>=</code><code>""</code><code>&gt;&lt;</code><code>span</code><code>&gt;Products&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>a</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>5</code></td>
<td><code>&lt;</code><code>li</code> <code>class</code><code>=</code><code>"item3"</code><code>&gt;&lt;</code><code>a</code> <code>href</code><code>=</code><code>""</code><code>&gt;&lt;</code><code>span</code><code>&gt;News&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>a</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>6</code></td>
<td><code>&lt;</code><code>li</code> <code>class</code><code>=</code><code>"item4"</code><code>&gt;&lt;</code><code>a</code> <code>href</code><code>=</code><code>""</code><code>&gt;&lt;</code><code>span</code><code>&gt;Blog&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>a</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>7</code></td>
<td><code>&lt;</code><code>li</code> <code>class</code><code>=</code><code>"item5"</code><code>&gt;&lt;</code><code>a</code> <code>href</code><code>=</code><code>""</code><code>&gt;&lt;</code><code>span</code><code>&gt;Contact Up&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>a</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>8</code></td>
<td><code>&lt;/</code><code>ul</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>9</code></td>
<td><code>&lt;/</code><code>div</code><code>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>You can see that Zen Coding is quite a powerful text-processing tool.</p>
<div id="zen-coding-info">
<h3>Key Bindings</h3>
<ul>
<li><code>Ctrl+,</code><br />
Expand Abbreviation</li>
<li><code>Ctrl+M</code><br />
Match Pair</li>
<li><code>Ctrl+H</code><br />
Wrap with Abbreviation</li>
<li><code>Shift+Ctrl+M</code><br />
Merge Lines</li>
<li><code>Ctrl+Shift+?</code><br />
Previous Edit Point</li>
<li><code>Ctrl+Shift+?</code><br />
Next Edit Point</li>
<li><code>Ctrl+Shift+?</code><br />
Go to Matching Pair</li>
</ul>
</div>
<h3>Online Demo</h3>
<p>You’ve  learned a lot about how Zen Coding works and how it can make your  coding easier. Why not try it yourself now, right here? Because Zen  Coding is written in pure JavaScript and ported to Python, it can even  work inside the browser, which makes it a prime candidate for including  in a CMS.</p>
<ul>
<li><a href="http://zen-coding.ru/demo/">Demo</a> (use <em>Ctrl + ,</em> to expand an abbreviation, requires JavaScript)</li>
</ul>
<h3>Supported Editors</h3>
<p>Zen  Coding doesn’t depend on any particular editor. It’s a stand-alone  component that works with text only: it takes text, does something to it  and then returns new text (or indexes, for tag matching). Zen Coding is  written in JavaScript and Python, so it can run on virtually any  platform out of the box. On Windows, you can run the JavaScript version  of Windows Scripting Host. And modern Macs and Linux distributions are  bundled with Python.</p>
<p>To make your editor support Zen Coding, you  need to write a special plug-in that can transfer data between your  editor and Zen Coding. The problem is that an editor may not have full  Zen Coding support because of its plug-in system. For example, <a href="http://macromates.com/">TextMate</a> easily supports the “Expand Abbreviation” action by replacing the  current line with the script output, but it can’t handle pair-tag  matching because there’s no standard way to ask TextMate to select  something.</p>
<h4>Full Support</h4>
<ul>
<li><a href="http://code.google.com/p/zen-coding/downloads/detail?name=Zen.Coding-Aptana.v0.5.zip">Aptana</a> (cross-platform);</li>
<li>Coda, via <a href="http://github.com/sergeche/tea-for-coda/downloads">TEA for Coda</a> (Mac);</li>
<li>Espresso, via <a href="http://github.com/sergeche/tea-for-espresso/downloads">TEA for Espresso</a> (Mac);</li>
</ul>
<h4>Partial Support (“Expand Abbreviation” Only)</h4>
<ul>
<li><a href="http://code.google.com/p/zen-coding/downloads/detail?name=Zen%20Coding%20for%20TextMate%20v0.3.1.zip">TextMate</a> (Mac, and can be used with E-text editor for Windows);</li>
<li><a href="http://code.google.com/p/zen-coding/downloads/detail?name=TopStyle.Zen.Coding.1.0.zip">TopStyle</a>;</li>
<li><a href="http://code.google.com/p/zen-coding/downloads/detail?name=Sublime.Zen.Coding.1.1.3.zip">Sublime Text</a>;</li>
<li><a href="http://www.kryogenix.org/days/2009/09/21/zen-coding-for-gedit">GEdit</a>;</li>
<li><a href="http://zen-coding.ru/demo/">editArea online editor</a>;</li>
</ul>
<p>Aptana  is my primary development environment, and it uses a JavaScript version  of Zen Coding. It also contains many more tools that I use for routine  work. Every new version of Zen Coding will be available for Aptana  first, then ported to Python and made available to other editors.</p>
<p>The Coda and Espresso plug-ins are powered by the excellent <a href="http://onecrayon.com/tea/">Text Editor Actions</a> (TEA) platform, developed by <a href="http://beckism.com/">Ian Beck</a>. The original source code is <a href="http://github.com/onecrayon">available at GitHub</a>, but I made <a href="http://github.com/sergeche/">my own fork</a> to integrate Zen Coding’s features.</p>
<h3>Conclusion</h3>
<p>Many  people who have tried Zen Coding have said that it has changed their  way of creating Web pages. There’s still a lot of work to do, many  editors to support and much documentation to write. Feel free to browse  the <a href="http://code.google.com/p/zen-coding/w/list">existing documentation</a> and <a href="http://code.google.com/p/zen-coding/source/browse/#svn/branches/serge.che">source code</a> to find answers to your questions. Hope you enjoy Zen Coding!</p>
<div class="shr-publisher-33"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nexostudios.com/blog/zen-coding-a-speedy-way-to-write-htmlcss-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

