<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Si no lo haces tú, lo harán otros.</title>
	<atom:link href="http://webealo.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://webealo.wordpress.com</link>
	<description>Apuntes y referencias rapidas para el desarrollo Web</description>
	<lastBuildDate>Tue, 19 May 2009 12:16:22 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='webealo.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Si no lo haces tú, lo harán otros.</title>
		<link>http://webealo.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://webealo.wordpress.com/osd.xml" title="Si no lo haces tú, lo harán otros." />
	<atom:link rel='hub' href='http://webealo.wordpress.com/?pushpress=hub'/>
		<item>
		<title>DIMDIM &#8211; Video conferencias para Webminarios</title>
		<link>http://webealo.wordpress.com/2009/05/19/dimdim-video-conferencias-para-webminarios/</link>
		<comments>http://webealo.wordpress.com/2009/05/19/dimdim-video-conferencias-para-webminarios/#comments</comments>
		<pubDate>Tue, 19 May 2009 11:54:37 +0000</pubDate>
		<dc:creator>webealo</dc:creator>
				<category><![CDATA[Marketing]]></category>
		<category><![CDATA[codigo abierto]]></category>
		<category><![CDATA[on-line]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webminario]]></category>

		<guid isPermaLink="false">http://webealo.wordpress.com/?p=100</guid>
		<description><![CDATA[Mi amigo Guillermo Golfram, me ha recomendado este enlace que a mas de uno le va a ayudar en sus conferencias on-line. Es totalmente gratuito (versión para 20 asistentes y un orador) y está pensado para empresas o particulares que desean compartir experiencias o reuniones a través de la Web. Es tan simple su funcionamiento, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=100&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dimdim.com/index" target="_blank"><img class="alignleft size-medium wp-image-101" title="dimdim_logo-blacktext" src="http://webealo.files.wordpress.com/2009/05/dimdim_logo-blacktext.png?w=300&#038;h=136" alt="dimdim_logo-blacktext" width="300" height="136" /></a>Mi amigo Guillermo Golfram, me ha recomendado este enlace que a mas de uno le va a ayudar en sus conferencias on-line.</p>
<p>Es totalmente gratuito (versión para 20 asistentes y un orador) y está pensado para empresas o particulares que desean compartir experiencias o reuniones a través de la Web. Es tan simple su funcionamiento, que cualquiera puede utilizarlo. El usuario no tiene que instalarse ningún programa en su equipo para empezar a utilizarlo. Dimdim esta disponible en código abierto para poder mejorarlo libremente.</p>
<p><span id="more-100"></span></p>
<p>No es una aplicación de escritorio, lo que lo hace mas versatil, ya que podemos conectarnos o realizar los Webminarios desde cualquier parte del planeta, eso si, si se dispone de conexión a Internet. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Cualquier persona puede registrase y comenzar en pocos clics a realizar demostraciones, reuniones o conferencias. Los clientes que deseen personalizar Dimdim, para hacer uso de esta herramienta en su Intranet o página Web. Pueden comprar por 99$ al año el programa Profesional. Y si se trata de una empresa con muchos convocados en sus reuniones, pueden comprar Dimdim Empresas, con un coste mas inferior en comparación a otras soluciones existentes en el mercado.</p>
<p>Dimdim se inició en febrero de 2006, y está respaldada por Nexus India Capital, Index Ventures y Draper Richards.</p>
<p><strong>Referencia: <a href="http://www.dimdim.com/" target="_blank">http://www.dimdim.com/</a></strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webealo.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webealo.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webealo.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webealo.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webealo.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webealo.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webealo.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webealo.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webealo.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webealo.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webealo.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webealo.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webealo.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webealo.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=100&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webealo.wordpress.com/2009/05/19/dimdim-video-conferencias-para-webminarios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4304ba6fcf0934703a2df52d757f36f6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster de webealo</media:title>
		</media:content>

		<media:content url="http://webealo.files.wordpress.com/2009/05/dimdim_logo-blacktext.png?w=300" medium="image">
			<media:title type="html">dimdim_logo-blacktext</media:title>
		</media:content>
	</item>
		<item>
		<title>Encuesta</title>
		<link>http://webealo.wordpress.com/2008/12/21/encuesta/</link>
		<comments>http://webealo.wordpress.com/2008/12/21/encuesta/#comments</comments>
		<pubDate>Sun, 21 Dec 2008 15:27:12 +0000</pubDate>
		<dc:creator>webealo</dc:creator>
				<category><![CDATA[encuesta]]></category>

		<guid isPermaLink="false">http://webealo.wordpress.com/?p=97</guid>
		<description><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=97&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<a href="http://polldaddy.com/poll/1215663/">View This Poll</a>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webealo.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webealo.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webealo.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webealo.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webealo.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webealo.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webealo.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webealo.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webealo.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webealo.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webealo.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webealo.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webealo.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webealo.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=97&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webealo.wordpress.com/2008/12/21/encuesta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4304ba6fcf0934703a2df52d757f36f6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster de webealo</media:title>
		</media:content>
	</item>
		<item>
		<title>Extracción de correos electrónicos</title>
		<link>http://webealo.wordpress.com/2008/11/08/extraccion-de-correos-electronicos/</link>
		<comments>http://webealo.wordpress.com/2008/11/08/extraccion-de-correos-electronicos/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 23:59:32 +0000</pubDate>
		<dc:creator>webealo</dc:creator>
				<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://webealo.wordpress.com/?p=87</guid>
		<description><![CDATA[A la hora de desarrollar y dar a conocer un proyecto de Marketing, nos es imprescindible herramientas que nos ayude a divulgar cierto contenido. Quizás una de los métodos mas utilizados, sea el mailling o envío de correo electrónico masivo a través de programas de listas de distribución. Posiblemente,  disponemos de documentación de nuestros clientes, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=87&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><a href="http://webealo.files.wordpress.com/2008/11/emailmarketing0ev.jpg"><img class="alignleft size-full wp-image-93" style="margin:0 4px 0 0;" title="emailmarketing0ev" src="http://webealo.files.wordpress.com/2008/11/emailmarketing0ev.jpg?w=500" alt="Envio de E-mail"   /></a>A la hora de desarrollar y dar a conocer un proyecto de Marketing, nos es imprescindible herramientas que nos ayude a divulgar cierto contenido. Quizás una de los métodos mas utilizados, sea el mailling o envío de correo electrónico masivo a través de programas de listas de distribución.</p>
<p style="text-align:justify;">Posiblemente,  disponemos de documentación de nuestros clientes, en donde aparece su correo electrónico, deseamos extraerlo, pero es laborioso tener que revisar o buscar el email.</p>
<p style="text-align:justify;">Existen varios modos de hacerlo, pero el propongo aquí me ha resultado curioso, rápido y me ha salvado de copiar y pegar uno a uno de un documento PDF de más de 145 páginas.</p>
<p style="text-align:justify;">Lo encontré en <a href="http://www.surf7.net/" target="_blank">SURF7 NETWORKS</a>, una empresa dentro del sector de las IT, fundada en el año 2002 y dedicada al alquiler de Hosting, registros de dominios, desarrollo y diseño Web, comercio electrónico, conexiones de banda ancha y certificados digitales SSL.</p>
<p style="text-align:justify;">En su apartado de herramientas gratuitas para el desarrollo web, encontramos el extractor de emails del que os comento.</p>
<blockquote>
<p style="text-align:justify;"><strong><a href="http://www.surf7.net/product/tools/extractor.php" target="_blank">http://www.surf7.net/product/tools/extractor.php</a></strong></p>
</blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webealo.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webealo.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webealo.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webealo.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webealo.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webealo.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webealo.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webealo.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webealo.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webealo.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webealo.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webealo.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webealo.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webealo.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=87&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webealo.wordpress.com/2008/11/08/extraccion-de-correos-electronicos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4304ba6fcf0934703a2df52d757f36f6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster de webealo</media:title>
		</media:content>

		<media:content url="http://webealo.files.wordpress.com/2008/11/emailmarketing0ev.jpg" medium="image">
			<media:title type="html">emailmarketing0ev</media:title>
		</media:content>
	</item>
		<item>
		<title>Menú Suckerfish &#8211; por Patrick Griffiths y Dan Webb</title>
		<link>http://webealo.wordpress.com/2008/10/25/menu-suckerfish-por-patrick-griffiths-y-dan-webb/</link>
		<comments>http://webealo.wordpress.com/2008/10/25/menu-suckerfish-por-patrick-griffiths-y-dan-webb/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 17:21:51 +0000</pubDate>
		<dc:creator>webealo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[menú desplegable]]></category>

		<guid isPermaLink="false">http://webealo.wordpress.com/?p=59</guid>
		<description><![CDATA[Los menús desplegables DHTML se han creado con desagradables lineas de JavaScript y hacks específicos para cada navegador convirtiendo el HTML semántico en bastante inaccesible. Buscaba el sueño de la accesibilidad compatible con todos los estándares y compatible con todos los navegadores. Encontré, Suckerfish. Conoce la marca Para empezar, debemos utilizar el mejor método para [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=59&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Los menús desplegables DHTML se han creado con desagradables lineas de JavaScript y hacks específicos para cada navegador convirtiendo el HTML semántico en bastante inaccesible. Buscaba el sueño de la accesibilidad compatible con todos los estándares y compatible con todos los navegadores. Encontré, Suckerfish.</p>
<p style="text-align:justify;"><span id="more-59"></span></p>
<p style="text-align:justify;">
<h3>Conoce la marca</h3>
<p style="text-align:justify;">Para empezar, debemos utilizar el mejor método para definir un menú de navegación. Para este ejemplo, vamos a trabajar con las simples listas ordenadas de HTML.</p>
<p style="padding-left:30px;"><span style="color:#000080;">&lt;ul&gt;<br />
&lt;li&gt;Sunfishes<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href=&#8221;"&gt;Blackbanded<span class="linewrap">»</span>sunfish&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;"&gt;Shadow bass&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;"&gt;Ozark bass&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;"&gt;White crappie&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;</span></p>
<p style="padding-left:30px;"><span style="color:#000080;">&lt;li&gt;Grunts<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href=&#8221;"&gt;Smallmouth grunt&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;"&gt;Burrito&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;"&gt;Pigfish&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;</span></p>
<p style="padding-left:30px;"><span style="color:#000080;">&lt;li&gt;Remoras<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href=&#8221;"&gt;Whalesucker&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;"&gt;Marlinsucker&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;"&gt;Ceylonese remora&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;"&gt;Spearfish remora&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;"&gt;Slender suckerfish&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;</span></p>
<p style="text-align:justify;">Realmente sencillo, bonito y HTML puro que, como resultado de ello, es muy accesible. Pero ahora queremos transformar esto, en una lista dinámica &#8211; el primer nivel de la lista de artículos que forman una barra de menú horizontal a partir de la cual se desplegará las listas de segundo nivel.</p>
<h3>Dándole estilo</h3>
<p>Para empezar todas las listas deben ser lineales, es decir, que los <em>margin </em>y los <em>padding </em>los dejamos a <em>0</em> y el <em>list-style</em> a <em>none</em>:</p>
<p style="padding-left:30px;"><span style="color:#000080;">ul {<br />
padding: 0;<br />
margin: 0;<br />
list-style: none;<br />
}</span></p>
<p style="text-align:justify;">Ahora necesitamos transformar el primer nivel en una lista de menús horizontal. Hay una serie de métodos para realizar esto. Podemos mostrar los articulos de la lista en linea con <em>display:inline</em>, pero para este ejemplo, vamos a flotarlo a la izquierda.</p>
<p style="padding-left:30px;"><span style="color:#000080;">li {<br />
float: left;<br />
position: relative;<br />
width: 10em;<br />
}</span></p>
<p style="text-align:justify;">La posición se ha establecido en <em>relative</em>, porque nosotros queremos la posición del segundo nivel. El menú esta tomando forma.</p>
<p style="text-align:justify;">El siguiente paso es hacer frente, a las listas de segundo nivel que serán los propios menús:</p>
<p style="padding-left:30px;"><span style="color:#000080;">li ul {<br />
display: none;<br />
position: absolute;<br />
top: 1em;<br />
left: 0;<br />
}</span></p>
<p style="text-align:justify;">La posición de las listas de segundo nivel es su totalidad y el set inicial no debe de ser mostrado. Si sustituimos <em>display:none </em>por <em>display:block</em>, veremos la necesidad de modificar las propiedades <em>top </em>y <em>left </em>para IE, ya que sin ellos. IE suma las listas de segundo nivel en la parte superior derecha de su pariente en lugar de los padres de la parte inferior izquierda. Des afortunadamente esto es un arreglo para IE ya que estropeará las cosas en otros navegadores , como Opera. Para establecer la parte superior izquierda y en las propiedades de todos los navegadores, añadiremos el siguiente CSS</p>
<p style="padding-left:30px;"><span style="color:#000080;">li &gt; ul {<br />
top: auto;<br />
left: auto;<br />
}</span></p>
<p style="text-align:justify;">Para que aparezcan las listas de artículos de segundo nivel ,cuando el ratón se pone encima, simplemente necesitaremos agregar lo siguiente:</p>
<p style="padding-left:30px;"><span style="color:#000080;">li:hover ul { display: block; }</span></p>
<p style="text-align:justify;">Esto significa, que cualquier lista anidada a un elemento de la lista donde el cursor se ponga encima, se muestre.</p>
<p style="text-align:justify;">Por último, ya que las listas están flotando a la izquierda, el contenido que hay debajo de él, debe de ser liberado de la flotabilidad, mediante un <em>clear:left</em>.</p>
<h3>¡Espera un minuto!</h3>
<p style="text-align:justify;">Este desplegable tan chulo no funciona !!!. Según dicen, el 102,6% son usuarios del navegador Internet Explorer (IE). Si se desarrolla bajo unos estandardares web, vemos que los de Micro$oft y su IE no respeta nada. <em>:hover</em> es una pseudo clase que trabaja con cualquier elemento, pero en IE solo funciona con los enlaces. ¿Que uso le daríamos a este menú, si solo lo vamos a ver el -2,6% de los usuarios de otros navegadores?. No mucho, para ser honesto. Tendremos que aplicar un poco más de magia.</p>
<h3>DOM basado en secuencias de comandos al rescate</h3>
<p style="text-align:justify;">Hemos establecido la falta de apoyo a la pseudo clase <em>:hover</em> por parte de IE. Pero utilizando el Document Object Model (DOM), podemos adjuntar <em>mouseover </em>y <em>mouseout </em>y eventos a cualquier elemento. Esto es una buena noticia para nosotros, porque significa, que con un simple fragmento de JavaScript podemos hacer eficaz los problemas de IE y <em>:hover</em></p>
<p style="text-align:justify;">Ya que el IE no lo detecta, tendremos que encontrar otra manera de identificar las propiedades de la pseudo clase <em>:hover</em>. Con JavaScript, sabemos que podemos manipular la propiedad del <em>className </em>de un elemento, así que lo primero que haremos será alterar el CSS.</p>
<p style="padding-left:30px;"><span style="color:#000080;">li:hover ul{ display: block; }</span></p>
<p>se convierte en:</p>
<p style="padding-left:30px;"><span style="color:#000080;">li:hover ul, li.over ul{ display: block; }</span></p>
<p style="text-align:justify;">Ahora podemos llamar a las reglas del <em>:hover</em> CSS mediante la adición de la clase <em>over </em>al elemento deseado. También necesitamos una manera de decirle a IE cual de los elementos <em>UL </em>en la página queremos realmente sean nuestros menús. Podemos hacer esto dándole una <em>ID </em>a nuestra raíz del elemento <em>UL</em>:</p>
<p style="padding-left:30px;"><span style="color:#000080;">&lt;ul&gt;</span></p>
<p>se convierte en:</p>
<p style="padding-left:30px;"><span style="color:#000080;">&lt;ul id=&#8221;nav&#8221;&gt;</span></p>
<p style="text-align:justify;">Ya tenemos un medio para identificar la raíz del elemento <em>UL </em>de nuestra lista desplegable, podemos agarrar este elemento y darle un loop a través de todos sus elementos hijo, vinculados a todos los eventos <em>mouseover </em>y <em>moseout </em>de todos elementos <em>LI </em>anidados dentro de ellos. Y así es como se hace:</p>
<pre><span style="color:#000080;">&lt;<span class="start-tag">script</span><span class="attribute-name"> type</span>=<span class="attribute-value">"text/javascript"</span>&gt;</span><span style="color:#000080;">&lt;!--//--&gt;&lt;![CDATA[//&gt;&lt;!--

startList = function() {
if (document.all&amp;&amp;document.getElementById) {
	navRoot = document.getElementById("nav");
	for (i=0; i&lt;navRoot.childNodes.length; i++) {
	node = navRoot.childNodes[i];
	if (node.nodeName=="LI") {
		node.onmouseover=function() {
		this.className+=" over";
		}
		node.onmouseout=function() {
		this.className=this.className.replace(" over", "");
		}
	}
}
}
}
window.onload=startList;

//--&gt;&lt;!]]&gt;</span><span style="color:#000080;">&lt;/<span class="end-tag">script</span>&gt;</span></pre>
<p style="text-align:justify;">En la página de carga, la función  <em>startList </em>es invocada. La función determina si el navegador es realmente IE5 o superior, chekeando la existencia del <em>document.all</em> y la función <em>document.getElementById</em>. Esto es una manera un poco cruda de hacerlo, pero es corto y cómodo. Desde que intentamos una hacer una solución compacta, esta lo hará. A continuación, a través de los loops, permite a los eventos <em>mouseover </em>y al <em>mouseout </em>a cual añadir o quitar la propiedad de la clase <em>over </em> del elemento <em>className</em>.</p>
<h3 style="text-align:justify;">Esto son agallas, aletas y espinas</h3>
<p style="text-align:justify;">Hasta el momento esta quedando desnudo. La idea ha sido enseñar el básico funcionamiento del menú desplegable Suckerfish. Pero CSS puede hacer que las cosas se vean mucho mejor. Un punto de salida obvio sería aplicar un color de fondo a la lista de segundo nivel.</p>
<p style="text-align:justify;">Despues de resetear las propiedades <em>top </em>y <em>left </em>descritas anterior mente, los menús aparecen directamente debajo de las etiquetas en la mayoría de los navegadores modernos, pero desafortunadament, no en todos. EL Safari 1.0 , todavía se caen desde el punto superior derecho de la pantalla.</p>
<h3 style="text-align:justify;">Además usabilidad y accesibilidad</h3>
<p style="text-align:justify;">Hacer enlaces en listas de primer nivel, permitirá al tab-stopping para los lectores que no utilizan dispositivos de puntero. Refiriéndose a los vínculos de las páginas de nivel superior donde los enlaces y los menús serán, incluso mejores.</p>
<p style="text-align:justify;">
<address>Traducido por: Administrador de webéalo. (la traducción, posiblemente, no sea exacta.). Se admiten sugerencias.</address>
<p style="text-align:justify;">URL ORIGINAL: <a class="alignleft" href="http://www.alistapart.com/articles/dropdowns/#resettop" target="_blank">http://www.alistapart.com/articles/dropdowns/#resettop</a></p>
<p style="text-align:justify;">
<p style="text-align:justify;">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webealo.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webealo.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webealo.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webealo.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webealo.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webealo.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webealo.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webealo.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webealo.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webealo.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webealo.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webealo.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webealo.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webealo.wordpress.com/59/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=59&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webealo.wordpress.com/2008/10/25/menu-suckerfish-por-patrick-griffiths-y-dan-webb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4304ba6fcf0934703a2df52d757f36f6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster de webealo</media:title>
		</media:content>
	</item>
		<item>
		<title>Introducción al Modelo de Objetos de Documento (DOM)</title>
		<link>http://webealo.wordpress.com/2008/10/19/introduccion-al-modelo-de-objetos-de-documento-dom/</link>
		<comments>http://webealo.wordpress.com/2008/10/19/introduccion-al-modelo-de-objetos-de-documento-dom/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 20:14:56 +0000</pubDate>
		<dc:creator>webealo</dc:creator>
				<category><![CDATA[DOM]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://webealo.wordpress.com/?p=49</guid>
		<description><![CDATA[El Modelo de Objetos de Documento o DOM, es la interfaz que te permite acceder y manipular, mediante la programación, los contenidos de una página web (o documento). Proporciona una representación estructurada, orientada a objetos, de los elementos individuales y el contenido de una página, con métodos para recuperar y fijar las propiedades de dichos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=49&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>El Modelo de Objetos de Documento o DOM, es la interfaz que te permite  acceder y manipular, mediante la programación, los contenidos de una  página web (o documento). Proporciona una representación estructurada,  orientada a objetos, de los elementos individuales y el contenido de una página, con métodos para recuperar y fijar las propiedades de dichos objetos. Además, proporciona métodos para agregar y eliminar dichos objetos, permitiéndote crear contenido dinámico.</p>
<p>El DOM proporciona también una interfaz para trabajar con eventos,  permitiéndote capturar y responder a las acciones del usuario o del  navegador. Noscentraremos en la representación  DOM de un documento y los métodos que proporciona para acceder a dichos  objetos.</p>
<p><span id="more-49"></span></p>
<h4>Niveles del DOM</h4>
<p>Con el fin de proporcionar cierta compatibilidad hacia atrás, se  definieron diferentes niveles del estándar del DOM. Encontrarás  referencias al DOM Nivel 0 (o &#8220;DOM0&#8243;) que corresponde al modelo usado por  los primeros navegadores scriptables &#8211; principalmente  Internet Explorer y Netscape anteriores a la versión 4 de cada uno. A continuación  está el DOM1 que fué adoptado en 1998 y que cubre algunas de  las características introducidas en la versión 4 de los navegadores.</p>
<h4>Navegadores Compatibles con los Estándares</h4>
<p>Este artículo se centrará precisamente en el actual estándar  DOM2. Aunque este estándar se aplica a los documentos XML en general(extended  markup language), discute cómo el estándar se aplica a HTML en particular (ya que éste es un derivado de XML).</p>
<p>la programación DOM también es indirectamente dependiente de los estándares para HTML y CSS, dado que el DOM refleja las etiquetas y atributos  definidos para dichos estándares. También depende de un estándar para JavaScript ya que el DOM es esencialmente una API para client-side scripting.</p>
<h3>El Árbol del Documento</h3>
<p>Cuando un navegador carga una página, crea una representación jerárquica de sus contenidos que representa, aproximadamente, su estructura HTML. Esto desemboca en una organización parecida a un árbol de nodos, cada uno representando un elemento, un atributo,  contenido o algún otro objeto.</p>
<h4>Nodos</h4>
<p>Cada uno de estos tipos diferentes de objetos tendrá sus propios y únicos métodos y propiedades. Pero cada tipo implementará también la interfaz <code>Node</code>. Esta interfaz es un conjunto común de métodos y propiedades relacionadas con la estructura de árbol del documento. Para comprender mejor esta interfaz, échale un vistazo al diagrama de abajo que representa un árbol de nodos simple.</p>
<p><a href="http://webealo.files.wordpress.com/2008/10/nodes1.gif"><img class="aligncenter size-full wp-image-50" title="nodes1" src="http://webealo.files.wordpress.com/2008/10/nodes1.gif?w=500" alt=""   /></a></p>
<p>El objeto <code>Node</code> proporciona varias propiedades que reflejan esta  estructura y te permiten recorrer el árbol. Aquí hay algunas relaciones  usando el ejemplo anterior:</p>
<ul>
<li>NodeA<code>.firstChild</code> = NodeA1</li>
<li>NodeA<code>.lastChild</code> = NodeA3</li>
<li>NodeA<code>.childNodes.length</code> = <code>3</code></li>
<li>NodeA<code>.childNodes[0]</code> = NodeA1</li>
<li>NodeA<code>.childNodes[1]</code> = NodeA2</li>
<li>NodeA<code>.childNodes[2]</code> = NodeA3</li>
<li>NodeA1<code>.parentNode</code> = NodeA</li>
<li>NodeA1<code>.nextSibling</code> = NodeA2</li>
<li>NodeA3<code>.prevSibling</code> = NodeA2</li>
<li>NodeA3<code>.nextSibling</code> = <code>null</code></li>
<li>NodeA<code>.lastChild.firstChild</code> = NodeA3a</li>
<li>NodeA3b<code>.parentNode.parentNode</code> = NodeA</li>
</ul>
<p>La interfaz <code>Node</code> también proporciona métodos para añadir, actualizar y eliminar nodos dinámicamente, tales como:</p>
<ul>
<li><code>insertBefore()</code></li>
<li><code>replaceChild()</code></li>
<li><code>removeChild()</code></li>
<li><code>appendChild()</code></li>
<li><code>cloneNode()</code></li>
</ul>
<p>Éstos serán cubiertos más tarde. Pero, de momento, vamos a ver cómo refleja el árbol del documento los contenidos de una página web.</p>
<h4>La Raíz (Root) Document</h4>
<p>El objeto <code>document</code> object sirve de raíz de este árbol de nodos. Implementa también la interfaz <code>Node</code>. Va a tener  nodos hijos pero no tendrá nodo padre ni nodos de su mismo nivel, dado que él es el nodo inicial. Además de ser un <code>Node,</code> también implementa la interfaz <code>Document</code>.</p>
<p>Esta interfaz proporciona métodos para acceder y crear otros nodos en el árbol del documento. Algunos métodos son:</p>
<ul>
<li><code>getElementById()</code></li>
<li><code>getElementsByTagName()</code></li>
<li><code>createElement()</code></li>
<li><code>createAttribute()</code></li>
<li><code>createTextNode()</code></li>
</ul>
<p>Nótese que, de modo distinto a los otros nodos, sólo hay un objeto <code>document</code> en una página. Todos los métodos anteriores (excepto <code>getElementsByTagName()</code>) pueden utilizarse sólo contra el objeto document, e.d., usando la sintaxis <code>document.<em> methodName</em>()</code>.</p>
<p>El objeto <code>document</code> también puede tener otras propiedades  relacionadas con el soporte de antiguos niveles del DOM. Por ejemplo, encontrarás que muchos navegadores tienen todavía los arrays <code>document.images</code> y <code>document.links</code> o las propiedades <code>document.bgColor</code> y <code>document.fgColor</code> relacionadas con los atributos BGCOLOR y TEXT de la etiqueta BODY.</p>
<p>Estas propiedades se mantienen con la intención de proporcionar cierta compatibilidad hacia atrás para que páginas diseñadas para navegadores antiguos sigan funcionando apropiadamente con las nuevas versiones. Pueden utilizarse todavía en los scripts pero probablemente no estén soportadas en las versiones futuras.</p>
<h4>Recorriendo el árbol del Documento</h4>
<p>Como se ha mencionado, el árbol del documento refleja la estructura del código de una  página. Cada etiqueta o par de etiquetas está representada por un nodo elemento con otros nodos representando atributos o datos de carácter (e.d., texto).</p>
<p>Técnicamente hablando, el objeto <code>document</code> tiene sólo un elemento hijo, dado por <code>document.documentElement.</code> Para páginas web, éste representa la etiqueta exterior HTML, y ésta actua como el elemento raíz del árbol del documento. Va a tener los elementos hijos HEAD y BODY que tendrán a su vez otros elementos hijos.</p>
<p>Utilizando ésto, y los métodos de la interfaz <code>Node</code> , puedes recorrer el árbol del documento para acceder a los nodos individuales contenidos en dicho árbol. Considera lo siguiente:</p>
<pre>&lt;html&gt;
&lt;head&gt;
&lt;title&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;p&gt;This is a sample paragraph.&lt;/p&gt;&lt;/body&gt;
&lt;/html&gt;</pre>
<p>y éste código:</p>
<pre>alert(document.documentElement.lastChild.firstChild.tagName);</pre>
<p>que debería mostrar &#8220;P&#8221;, el nombre de la etiqueta representada por dicho nodo. El código se puede descomponer como sigue:</p>
<ul>
<li><code>document.documentElement</code> &#8211; devuelve la etiqueta HTML de la página.</li>
<li><code>.lastChild</code> &#8211; devuelve la etiqueta BODY.</li>
<li><code>.firstChild</code> &#8211; devuelve el primer elemento en BODY.</li>
<li><code>.tagName</code> &#8211; devuelve el nombre de la etiqueta de dicho elemento, &#8220;P&#8221; en este caso.</li>
</ul>
<p>Hay varios problemas obvios para acceder a los nodos de esta forma. Por ejemplo, un simple cambio del código de la página, como agregar texto o elementos con formato o imágenes, cambiará la estructura de árbol. La ruta utilizada anteriormente no apuntará, en ese caso, al nodo intencionado.</p>
<p>Menos obvias son ciertas incompatibilidades entre los navegadores. Nótese que en el ejemplo HTML anterior, no hay espacio entre las etiquetas BODY y P. Si se hubiese añadido simplemente un salto de línea,</p>
<pre>&lt;html&gt;
&lt;head&gt;
&lt;title&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;p&gt;This is a sample paragraph.&lt;/p&gt;

&lt;/body&gt;
&lt;/html&gt;

Netscape añadiría un nodo para este dato, mientras que IE
no lo haría. Por ésto, en Netscape, el código JavaScript
mostrado anteriormente debería devolver "undefined" como su nuevo
puntero para el nodo de texto para este espacio en blanco. Como no es un
nodo elemento, no tiene la propiedad tagName. IE, por su parte, no agrega
nodos para espacios en blanco cómo estos, por lo que todavía.</pre>
<h4>Accediendo a los Elementos Directamente</h4>
<p>Aquí es donde el método <code>document.getElementById()</code> adquiere utilidad. Mediante la adición de un atributo ID a la etiqueta del párrafo (o cualquier otra etiqueta, para el caso), puedes referirte a ella directamente.</p>
<pre>&lt;p id="myParagraph"&gt;This is a sample paragraph.&lt;/p&gt;

...

alert(document.getElementById("myParagraph").tagName);</pre>
<p>De este modo, puedes evitar problemas de compatibilidad y actualizar los contenidos de la página sin tener que preocuparte de dónde está el nodo del párrafo en el árbol del documento. Debemos recordar que cada ID tiene que ser único en una página.</p>
<p>Un método algo menos directo de acceder a los nodos de tipo elemento es proporcionado por <code>document.getElementsByTagName().</code> Éste devuelve un array de nodos representando todos los elementos en una página que tengan la etiqueta HTML especificada. Por ejemplo, podrías cambiar el color de todos los links en una página con lo siguiente.</p>
<pre>var nodeList = document.getElementsByTagName("A");
for (var i = 0; i &lt; nodeList.length; i++)
  nodeList[i].style.color = "#ff0000";</pre>
<p>Que actualiza simpemente los estilos inline de cada link fijándo el parámetro <code>color</code> en rojo.</p>
<h3>Tipos de Nodos</h3>
<p>hay varios   tipos de nodos definidos en el modelo de objetos de documento, pero los que  vas a utilizar con más frecuencia para las páginas web son <em> element, text</em> y <em>attribute.</em></p>
<p>Los nodos <em>Element</em>, como hemos visto, se corresponden a las etiquetas  individualel  o pares de éstas en el código HTML. Éstas  pueden tener nodos hijos, que pueden ser otros  elementos o nodos de texto.</p>
<p>Los nodos <em>Text</em> representan contenido, o datos de carácter. Van a tener un nodo padre y, posiblemente, nodos del mismo nivel, pero no pueden tener nodos hijos.</p>
<p>Los nodos <em>Attribute</em> son un caso especial. No están considerados una parte del árbol del documento &#8211; no tienen un nodo padre(parent), ni nodos hijos(children) o nodos del mismo nivel (siblings). En lugar de ello, son utilizados para posibilitar el aceso a los atributos de un nodo elemento. Esto es, representan los atributos definidos en la etiqueta HTML de un elemento, como el atributo HREF de una etiqueta A o el atributo SRC de una etiqueta IMG.</p>
<p>Nótese que los valores de los atributos son siempre cadenas de texto.</p>
<h4>Atributos vs. Nodos Atributo</h4>
<p>Hay varios modos de hacer referencia a los atributos de un elemento. la  razón de ésto es que el estándar del DOM2 fué diseñado para muchos tipos de documentos estructurados (e.d., documentos XML), no sólo HTML. Por lo que define un tipo formal de nodo para los atributos.</p>
<p>Pero para todos los documentos también proporciona algunos métodos mas convenientes para acceder, agregar y modificar atributos, com se describe a continuación.</p>
<p>El método <code>document.createAttribute()</code> te permite crear un nuevo nodo   atributo, al cuál le puedes fijar entonces un valor y asignarlo a un nodo elemento.</p>
<pre>var attr = document.createAttribute("myAttribute");
attr.value = "myValue";
var el = document.getElementById("myParagraph");
el.setAttributeNode(attr);</pre>
<p>No obstante, usualmente es más fácil aceder a los atributos de un elemento directamente   usando los métodos del elemento <code> getAttribute()</code> y <code>setAttribute()</code> en su lugar.</p>
<pre>var el = document.getElementById("myParagraph");
el.setAttribute("myAttribute", "myValue");</pre>
<p>Los atributos de un elemento son representados también como propiedades del nodo elemento. En otras palabras, puedes usar simplemente</p>
<pre>var el = document.getElementById("myParagraph");
el.myAttribute = "myValue";</pre>
<div class="noteBox"><strong>Compatibilidad de Navegadores</strong> Nótese que Internet Explorer (hasta la versión 5.5) no soporta el tipo de nodo atributo. En su lugar, debes aceder y fijar los atributos de un elemento usando los métodos <code>getAttribute()</code> y <code>setAttribute()</code> del nodo elemento o como propiedades como se ha mostrado anteriormente.</div>
<p>También es interesante resaltar que puedes definir tus propios atributos en la etiqueta HTML en sí misma. Por ejemplo,</p>
<pre>&lt;p id="myParagraph" myAttribute="myValue"&gt;This is a sample paragraph.&lt;/p&gt;

...

alert(document.getElementById("myParagraph").getAttribute("myAttribute"));</pre>
<p>mostrará &#8220;myAttribute.&#8221; Pero fíjate en que deberías usar <code><em>element</em> .getAttribute(<em>attributeName</em>)</code> en lugar de <code><em>element.attributeName</em></code> para obtener el valor ya que algunos navegadores no registrarán los atributos definidos por el usuario como propiedades del elemento.</p>
<p>Los atributos también pueden removerse de un nodo elemento, utilizándo indistintamente los métodos <code> removeAttribute()</code> o <code> removeAttributeNode()</code> o fijándolos en la propiedad <code><em> element.attributeName</em></code> a una cadena nula (&#8220;&#8221;).</p>
<p>La alteración de los atributos es uno de los modos de crear efectos dinámicos.</p>
<p>El código es bastante simple:</p>
<p>&lt;p id=&#8221;sample1&#8243; align=&#8221;left&#8221;&gt;Text in a paragraph element.&lt;/p&gt;</p>
<p>&#8230; code for the links &#8230;</p>
<p>document.getElementById(&#8216;sample1&#8242;).setAttribute(&#8216;align&#8217;, &#8216;left&#8217;);<br />
document.getElementById(&#8216;sample1&#8242;).setAttribute(&#8216;align&#8217;, &#8216;right&#8217;);</p>
<h4>Atributos de estilo</h4>
<p>La mayor parte de los atributos para las etiquetas HTML son bastante simples, definen un único valor para una propiedad específica para dicha etiqueta. Los estilos son un poco más complicados. Como sabes, CSS puede ser utilizado para aplicar parámetros de estilo a una etiqueta individual, a todas las etiquetas de un tipo dado o a las que hayamos asignado  <em>clases.</em> Asímismo, los estilos para un elemento en particular pueden ser heredados dede cualquiera de éstas fuentes.</p>
<p>También puedes alterar estos estilos a varios niveles. Por ejemplo, puedes cambiar el atributo STYLE de una etiqueta HTML, o su atributo CLASS. Pero estos métodos alterarán todos los parámetros de estilo de un elemento. Frecuentemente, vas a querer cambiar sólamente un sólo parámetro, o unos pocos seleccionados, mientras que retendrás los demás.</p>
<p>Afortunadamente, el atributo <code>style</code> de un nodo elemento está definido como un objeto con propiedades para cada parámetro de estilo posible. Puedes acceder y actualizar estos parámetros individuales como desees.</p>
<p>Pero en este caso, la alineación del texto está definida y alterada usando un parámetro de style en lugar del atributo ALIGN. Aquí está el código subyacente al ejemplo:</p>
<pre>&lt;p id="sample2" style="text-align:left;"&gt;Text in a paragraph
element.&lt;/p&gt;

... code for the links ...

document.getElementById('sample2').style.textAlign = 'left';
document.getElementById('sample2').style.textAlign = 'right';</pre>
<p>Nótese que cuando el nombre de un parámetro CSS contiene un guión (&#8220;-&#8221;) como en &#8220;text-align&#8221;, el nombre de su correspondiente propiedad <code>style</code> se construye quitando el guión y pasando a mayúsculas la primera letra que le sigue, en este caso quedaría como &#8220;textAlign.&#8221;</p>
<p>Nótese que incluso si un parámetro en particular de style no está definido inicialmente para un elemento, sigues pudiendo fijar su valor usando DOM. Por ejemplo, en el código anterior el estilo  &#8216;inline&#8217; <code>style=</code> en la etiqueta P realmente no es necesario.</p>
<p>Usando las técnicas que hemos discutido, podrías ser muy poco peligroso. Has visto como puedes acceder y alterar dinámicamente algunas propiedades o parámetros de estilo de un elemento en una página.</p>
<p>Pero, ¿qué hay de agregar y manipular dinámicamente elementos y contenido? ¿Y cambiar el contenido en sí mismo?</p>
<h3>Contenido Dinámico</h3>
<p>Cambiar contenido textual es relativamente simple. Cada cadena contínua de datos de carácter en el cuerpo de una página HTML es representada por un nodo de texto. El valor de la propiedad <code>nodeValue</code> de estos nodos es el texto en sí mismo. Cambiando dicho valor, cambiaremos el texto en una página.</p>
<h4>Nodos de Texto</h4>
<p>Ahora veamos el código que hay detrás de ésto:</p>
<pre>&lt;p id="sample1"&gt;This is the initial text.&lt;/p&gt;

... code for the links ...

document.getElementById('sample1').firstChild.nodeValue =
  'Once upon a time...';
document.getElementById('sample1').firstChild.nodeValue =
  '...in a galaxy far, far away';</pre>
<p>Hay unas cuantas cosas importantes que debemos resaltar aquí. La primera, los nodos de texto no tienen un atributo ID como pueden tenerlos los nodos elementos. Por lo tanto, no podemos acceder a ellos directamente usando métodos como <code>document.getElementById()</code> or <code> document.getElementsByTagName()</code>.</p>
<p>En su lugar, el código hace referencia al texto usando su nodo padre, en este caso es el elemento párrafo con un ID &#8220;sample1&#8243;. Este nodo elemento tiene un nodo hijo, el nodo textoque queremos actualizar. Puedes verlo en el diagrama siguiente.</p>
<p><a href="http://webealo.files.wordpress.com/2008/10/nodes2.gif"><img class="aligncenter size-full wp-image-51" title="nodes2" src="http://webealo.files.wordpress.com/2008/10/nodes2.gif?w=500" alt=""   /></a></p>
<p>Así <code>document.getElementById('sample1').firstChild.nodeValue</code> se ha utilizado para acceder a este nodo de texto y leer o fijar su valor de cadena.</p>
<p>Es importante recordar que los nodos de texto contienen justamente eso, texto. Cualquier etiqueta de marcado simple como B o I dentro de una cadena de texto creará un sub-árbol de elemento y nodos texto. Por ejemplo, usando el ejemplo anterior y agregando etiquetas para poner en negrita la palabra &#8220;initial&#8221;:</p>
<pre>&lt;p id="sample2"&gt;This is the &lt;b&gt;initial&lt;/b&gt; text.&lt;/p&gt;</pre>
<p>tendremos que el árbol del elemento párrafo &#8220;sample2&#8243; tienen tres hijos en lugar de uno. Hay un nodo texto para &#8220;This is the &#8220;, un nodo elemento para el par de etiquetas B y un nodo texto para &#8221; text.&#8221;. El nodo para el elemento B element tiene un nodo hijo, un nodo de texto para &#8220;initial&#8221;. Puedes ver la estructura en el diagrama que sigue.</p>
<p><a href="http://webealo.files.wordpress.com/2008/10/nodes3.gif"><img class="aligncenter size-full wp-image-53" title="nodes3" src="http://webealo.files.wordpress.com/2008/10/nodes3.gif?w=500" alt=""   /></a></p>
<p>Cambiar <code>firstChild</code> del elemento  P ahora sólo afecta al texto &#8220;This is the &#8220;. Coloquialmente hablando, si intentas agregar marcado al valor de un nodo de texto, el navegador lo va a tratar como texto plano.</p>
<p>Donde el código del link se ha modificado como sigue:</p>
<pre>document.getElementById('sample3').firstChild.nodeValue =
  '&lt;b&gt;Once&lt;/b&gt; upon a time...';
document.getElementById('sample3').firstChild.nodeValue =
  '...in a galaxy &lt;i&gt;far, far&lt;/i&gt; away';</pre>
<p>Puedes eludir problemas como este pensando en los nodos de texto como cadenas individuales de datos de carácter localizados entre <em>cualquiera</em> dos etiquetas HTML, no necesariamente entre la primera pareja de etiquetas.</p>
<div class="noteBox"><strong>La Propiedad <code>innerHTML</code></strong>Internet Explorer introdujo la propiedad <code>innerHTML</code> para los nodos elemento. Representa los datos de carácter entre las etiquetas iniciales y final de un elemento, incluyendo otras etiquetas HTML. Netscape 6 ha adoptado esta propiedad, aún cuando no es parte del estándar actual del DOM.Utilizando esta característica, podrías reemplazar la totalidad del contenido del elemento párrafo del ejemplo anterior, incluyendo el marcado HTML, usando algo como:</p>
<pre>document.getElementById('sample4').innerHtml =
  "&lt;b&gt;Once&lt;/b&gt; upon a time...";</pre>
<p>Aunque manejable, ten en mente que no es parte del estándar, por lo que utilizalo bajo tu propio riesgo .</p></div>
<h4>Añadiendo Nodos</h4>
<p>Los Nodos se pueden agregar también al DOM. Acabas de ver como los nodos atributo pueden ser creados y aplicados a un elemento, y ahora vamos a ver cómo agregar nodos elemento y nodos texto al árbol del documento (sin utilizar la propiedad <code>innerHTML</code>).</p>
<p>El primer paso es crear un objeto nodo del tipo que quieras utilizar de entre <code>document.createElement(), document.createAttribute()</code> o  <code>document.createTextNode().</code> Para atributos, sin embargo, probablemente querrás crear un nodo elemento y asignárselos a éste directamente (recalcar que IE, hasta la versión 5.5, no soporta <code> createAttribute()</code>).</p>
<h4>Trabajando con Nodos de Texto</h4>
<p>Vamos a empezar con un nodo de texto. Abajo hay un código de ejemplo mostrando cómo crear un nodo de texto y asignarle un valor.</p>
<pre>var myTextNode = document.createTextNode("my text");</pre>
<p>Ahora tienes un nodo de texto. Pero no es parte del árbol del documento. Para hacer que aparezca en la página, necesitas agregarlo como un hijo de un nodo existente dentro del árbol. Como los nodos de texto no pueden tener nodos hijos, no puedes agregárselo a otro  nodo de texto. Los nodos atributos no son parte del árbol del documento, por lo que tampoco puedes agregarles nuevos nodos. Ésto nos deja sólo los nodos de tipo elemento.</p>
<p>Puesto que los nodos elemento pueden tener varios hijos, son proporcionados unos cuantos métodos diferentes que te permiten especificar dónde añadir los nuevos nodos entre sus hijos existentes. Esto se puede ilustrar mejor con un ejemplo.</p>
<p>Aquí, el método <code>appendChild()</code> para agregar nuevo texto a un elemento párrafo. También te permite remover el último nodo añadido usando el método <code>removeChild()</code> :</p>
<p>Initial text within a paragraph element.</p>
<p>var counter1 = 0;<br />
function addText1() {<br />
var text, el;<br />
text = document.createTextNode(&#8221; new text &#8221; + (++counter1));<br />
el = document.getElementById(&#8220;sample1&#8243;);<br />
el.appendChild(text);<br />
return false;<br />
}<br />
function removeText1() {<br />
var el;<br />
el = document.getElementById(&#8220;sample1&#8243;);<br />
if (el.hasChildNodes())<br />
el.removeChild(el.lastChild);<br />
return false;<br />
}</p>
<p><a href="http://kusor.net/traducciones/brainjar.es/introdom5.es.html"></a><a href="http://kusor.net/traducciones/brainjar.es/introdom5.es.html"><br />
</a></p>
<p>Ahora echémosle un vistazo al código:</p>
<pre>&lt;p id="sample1"&gt;Initial text within a paragraph element.&lt;/p&gt;

... code to add a text node ...

var text = document.createTextNode(" new text " + (++counter1));
var el = document.getElementById("sample1");
el.appendChild(text);

... code to remove the last child node ...

var el = document.getElementById("sample1");
if (el.hasChildNodes())
  el.removeChild(el.lastChild);</pre>
<p>Agregar texto es fácil, el código crea un nuevo nodo de texto, localiza el nodo del elemento párrafo y llama a <code>appendChild()</code> para insertarlo al final de su array <code>childNodes</code>. Una variable contador global es utilizada en el propio texto para que puedas distinguir cada nuevo nodo en lo que muestra el navegador.</p>
<p>Quitar texto es casi tan fácil, usando una llamada a <code>removeChildNode()</code> . La única diferencia está en la adición de un nodo de referencia, cuál de los hijos del elemento debe ser removido. Aquí utilizamos la propiedad <code>lastChild</code> del elemento que siempre apunta al último nodo de la matriz de <code>childNodes</code> del elemento. Nótese que también va a eleiminar el texto inicial escrito inicialmente en el código de la etiqueta P si éste es el único hijo.</p>
<p>Resaltar también el uso del método <code>hasChildNodes()</code> que simplemente devuelve <code>true</code> o <code>false</code> para indicar si el nodo dado tiene algún hijo actualmente. Aquí se ha utilizado para prevenirt un error por llamar <code>removeChild</code> cuando no le queda ningún hijo.</p>
<h4>Normalizando y Partiendo Nodos de Texto</h4>
<p>En ejemplo anterior, los nuevos nodos de texto se han añadido como hijos independientes. Pero si has escrito texto adicional en el marcado HTML,</p>
<pre>&lt;p id="sample1"&gt;Initial text within a paragraph element. new text 1
new text 2 new text 3&lt;/p&gt;</pre>
<p>aparecería en el DOM como un sólo nodo hijo de texto del  elemento párrafo. En otras palabras, el árbol de nodos producido añadiendo contenido dinámicamente aparecería diferente del árbol de nodos que resultaría si dicho contenido hubiese sido incluido en el código HTML estático.</p>
<p>Ésto puede o no ser deseable dependiendo de lo que estés intentando hacer. En algunos casos puedes querer combinar nodos de texto para hacer que el árbol refleje como si el nuevo contenido, añadido dinámicalmente, fuese una parte del código original HTML, estático.</p>
<p>El método <code>normalize()</code> nos proporciona dicha funcionalidad. Llamándolo sobre un elemento &#8220;limpiará&#8221; el árbol de nodos, combinando cualquiera de los nodos de texto adyacentes y eleiminando cualquiera de los que estén vacios.</p>
<div class="noteBox"><strong>Compatibilidad entre Navegadores</strong> Internet Explorer 5.5 no soporta el método <code>normalize</code> . El ejemplo de abajo no funcionará apropiadamente en este navegador. IE 6.0, sin embargo, si lo soporta (aunque no funcionase en la versión beta).</div>
<p>Para demostrarlo, aquí está el mismo ejemplo utilizado anteriormente pero con links adicionales proporcionados para normalizar el elemento párrafo y mostrar su número actual de hijos.</p>
<p>Initial text within a paragraph element.</p>
<p>var count2 = 0;<br />
function addText2() {<br />
var text, el;<br />
text = document.createTextNode(&#8221; new text &#8221; + (++count2));<br />
el = document.getElementById(&#8220;sample2&#8243;);<br />
el.appendChild(text);<br />
return false;<br />
}<br />
function removeText2() {<br />
var el;<br />
el = document.getElementById(&#8220;sample2&#8243;);<br />
if (el.hasChildNodes())<br />
el.removeChild(el.lastChild);<br />
return false;<br />
}<br />
function normalizeText2() {<br />
var el;<br />
el = document.getElementById(&#8220;sample2&#8243;);<br />
if (el.normalize)<br />
el.normalize();<br />
else<br />
alert(&#8220;Sorry, not supported in this browser.&#8221;);<br />
return false;<br />
}</p>
<p><a href="http://kusor.net/traducciones/brainjar.es/introdom5.es.html"></a><a href="http://kusor.net/traducciones/brainjar.es/introdom5.es.html"><br />
</a></p>
<p>Puedes ver que mientras que añades texto, el número de nodos hijos aumenta pero que, en cuanto normalizas el párrafo, se combinan en un único nodo de texto. Aquí está el código para los links adicionales:</p>
<pre>... normalize element ...

el = document.getElementById("sample2");
el.normalize();

... show number of child nodes ...

el = document.getElementById("sample2");
alert(el.childNodes.length);</pre>
<p>También puedes partir un nodo de texto en dos separados usando el método <code>splitText()</code>. Ésto puede resultar útil si quieres alterar dinámicamente una sóla palabra o frase o insertar un elemento en una línea de texto.</p>
<p>Vamos con otro ejemplo. Esta vez, el link remove va a borrar el primer hijo del párrafo. Inicialmente, este va a ser la frase entera. Pero si utilizas separate link primero, va a separar la primera palabra en el texto y subsequentemente &#8216;remove&#8217; va a borrar sólo esa palabra. El link &#8216;reset&#8217; te permite empezar de nuevo.</p>
<p>Initial text within a paragraph element.</p>
<p>function splitText3() {<br />
var text, el;<br />
el = document.getElementById(&#8220;sample3&#8243;);<br />
if (el.hasChildNodes()) {<br />
text = el.firstChild;<br />
i = text.nodeValue.indexOf(&#8221; &#8220;);<br />
if (i &gt;= 0)<br />
text.splitText(i + 1);<br />
}<br />
return false;<br />
}<br />
function removeText3() {<br />
var el;<br />
el = document.getElementById(&#8220;sample3&#8243;);<br />
if (el.hasChildNodes())<br />
el.removeChild(el.firstChild);<br />
return false;<br />
}<br />
function reset3() {<br />
var text, el;<br />
el = document.getElementById(&#8220;sample3&#8243;);<br />
while (el.hasChildNodes())<br />
el.removeChild(el.firstChild);<br />
text = document.createTextNode(&#8220;Initial text within a paragraph element.&#8221;);<br />
el.appendChild(text);<br />
return false;<br />
}</p>
<p><a href="http://kusor.net/traducciones/brainjar.es/introdom5.es.html"></a>Y aquí está el código para cada función:</p>
<pre>... split at first word ...

el = document.getElementById("sample3");
if (el.hasChildNodes()) {
  text = el.firstChild;
  i = text.nodeValue.indexOf(" ");
  if (i &gt;= 0)
    text.splitText(i + 1);
}

... remove first text node ...

el = document.getElementById("sample3");
if (el.hasChildNodes())
  el.removeChild(el.firstChild);

... reset the example ...

el = document.getElementById("sample3");
while (el.hasChildNodes())
  el.removeChild(el.firstChild);
text = document.createTextNode(
  "Initial text within a paragraph element.");
el.appendChild(text);</pre>
<p>Algunas notas aquí. El <code>nodeValue</code> de un nodo de texto es simplemente una cadena. El método <code>splitText()</code> method espera un valor inicial que le diga pro dónde rompe el texto.El método del objeto string <code>indexOf()</code> es utilizado para encontrar el primer espacio en blanco en el texto y pasárselo a <code>splitText().</code></p>
<p>En segundo lugar, el código de reset simplemente borra todos los nodos hijos del párrafo original y entonces vuelve a agregar el texto original como un sólo nodo.</p>
<h4>Trabajando con Nodos de Tipo Elemento</h4>
<p>Agregar y quitar nodos de tipo elemento se hace más o menos igual que con los nodos de texto. La diferencia principal reside en la creación del nodo y la colocación de contenido dentro de éste.</p>
<p>En primer lugar, creas un nodo utilizando <code>document.createElement()</code> pasándole como parámetro el nombre de la etiqueta del elemento que quieras construir tal como P, DIV, TABLE, etc. El parámetro es case-insensitive,(insensible al uso de mayúsculas o minúsculas), así tanto &#8220;div&#8221;, &#8220;Div&#8221; como &#8220;DIV&#8221; crearán una etiqueta DIV. Es conveniente resaltar que el navegador devolverá el nombre de la etiqueta en mayúsculas si le preguntamos por éstet, por ejemplo:</p>
<pre>var el = document.createElement("div");
alert(el.tagName);</pre>
<p>mostraría &#8220;DIV&#8221;.</p>
<p>Como con los nodos de texto, después de crear un elemento necesitas agregarlo a algún elemento existente en el árbol del documento con el fin de poder verlo en la página.</p>
<p>Pero un nuevo elemento recien creado es simplemente una etiqueta vacía. Probablemente querrás añadirle primero algo de contenido, y fijar algunos de sus atributos. De nuevo un ejemplo práctico que ayudará a comprenderlo.</p>
<div id="sample1">This text is in a DIV element.</div>
<p>function addParagraph() {</p>
<p>var paraEl, boldEl;</p>
<p>paraEl = document.createElement(&#8220;p&#8221;);</p>
<p>boldEl = document.createElement(&#8220;b&#8221;);</p>
<p>paraEl.appendChild(document.createTextNode(&#8220;This is a new paragraph with &#8220;));</p>
<p>boldEl.appendChild(document.createTextNode(&#8220;bold&#8221;));</p>
<p>paraEl.appendChild(boldEl);</p>
<p>paraEl.appendChild(document.createTextNode(&#8221; text, added to the DIV&#8221;));</p>
<p>document.getElementById(&#8220;sample1&#8243;).appendChild(paraEl);</p>
<p>return false;</p>
<p>}</p>
<p>Aquí, haciendo click sobre el link crearemos un nuevo elemento P &#8211; con algunos nodos hijos propios &#8211; y lo agregaremos a un elemento DIV ya existente. Echemos un vistazo al código:</p>
<pre>&lt;div id="sample1"&gt;This text is in a DIV element.&lt;/div&gt;

... code for the link ...

var paraEl, boldEl;

paraEl = document.createElement("p");
boldEl = document.createElement("b");
paraEl.appendChild(
  document.createTextNode("This is a new paragraph with "));
boldEl.appendChild(document.createTextNode("bold"));
paraEl.appendChild(boldEl);
paraEl.appendChild(document.createTextNode(" text added to the DIV"));

document.getElementById("sample1").appendChild(paraEl);</pre>
<p>En primer lugar crea 2 nuevos elementos, una etiqueta P y una etiqueta B. Entonces agrega un nuevo nodo de texto con la cadena &#8220;This is a new paragraph with &#8221; a la etiqueta del párrafo. Hace lo mismo con la etiqueta B, agregándole el texto &#8220;bold&#8221;. A continuación, añade dicha etiqueta B (y su nodo de texto hijo) al párrafo. Otro nuevo nodo de texto con la cadena &#8221; text added to the DIV&#8221; es agregado al párrafo.</p>
<p>En este punto el elemento párrafo tiene tres hijos, un nodo de texto, un nodo elemento para la etiqueta B y otro nodo de texto. El elemento B tiene un hijo, un nodo de texto. El paso final es insertar el nuevo elemento párrafo dentro de la etiqueta DIV existente en la página.</p>
<p>También podríamos haber fijado cualquier atributo de cada nuevo elemento. No habría ninguna diferencia entre fijar los atributos de un elemento antes o después de haberlo agregado al árbol de nodos. Por ejemplo, tanto</p>
<pre>boldEl.style.color = "#ffff00";
paraEl.appendChild(boldEl);</pre>
<p>como</p>
<pre>paraEl.appendChild(boldEl);
boldEl.style.color = "#ffff00";</pre>
<p>convertirían el texto en negrita en rojo. En otras palabras, <code>appendChild()</code> coloca el propio nodo dentro del árbol, no una copia de éste, y la variable <code>boldEl</code> continuará apuntando a él.</p>
<h3>Conclusión</h3>
<p>Hay muchas más cosas sobre el Modelo de Objetos de Documento de las que han sido cubiertas aquí. Los estilos agregan una dimensión completamente nueva a la presentación del contenido y los eventos proporcionan un modo de hacer que las páginas sean interactivas con el usuario. Pero estos tópicos son dignos de su propia discusión.</p>
<p>Por ahora, trata de experimentar con lo que aquí ha sido cubierto. Familiarízate con el árbol del documento y los métodos que proporciona para navegarlo y para manipular tipos de nodos diferentes. Ésto te dará un fundamento sólido para tratar con otras características del DOM.</p>
<div id="creditos"><span class="artinfo">Autor Original:<a href="http://www.brainjar.com/">Mike Hall</a></span></div>
<div><span class="artinfo">URL ORIGINAL : <a href="http://www.brainjar.com/dhtml/intro/">http://www.brainjar.com/dhtml/intro/</a></span></div>
<div><span class="artinfo">TÍTULO ORIGINAL : Introduction to the Document Object Model </span></div>
<div><span class="artinfo">Traducción al castellano:<a href="http://kusor.net/">Pedro Palazón Candel</a></span></div>
<div><span class="artinfo">URL CASTELLANO : <a href="http://kusor.net/traducciones/brainjar.es/introdom1.es.html">http://kusor.net/traducciones/brainjar.es/introdom1.es.html</a></span></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webealo.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webealo.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webealo.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webealo.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webealo.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webealo.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webealo.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webealo.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webealo.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webealo.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webealo.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webealo.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webealo.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webealo.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=49&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webealo.wordpress.com/2008/10/19/introduccion-al-modelo-de-objetos-de-documento-dom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4304ba6fcf0934703a2df52d757f36f6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster de webealo</media:title>
		</media:content>

		<media:content url="http://webealo.files.wordpress.com/2008/10/nodes1.gif" medium="image">
			<media:title type="html">nodes1</media:title>
		</media:content>

		<media:content url="http://webealo.files.wordpress.com/2008/10/nodes2.gif" medium="image">
			<media:title type="html">nodes2</media:title>
		</media:content>

		<media:content url="http://webealo.files.wordpress.com/2008/10/nodes3.gif" medium="image">
			<media:title type="html">nodes3</media:title>
		</media:content>
	</item>
		<item>
		<title>Crear una barra de navegación horizontal con listas y CSS</title>
		<link>http://webealo.wordpress.com/2008/10/15/crear-una-barra-de-navegacion-horizontal-con-listas-y-css/</link>
		<comments>http://webealo.wordpress.com/2008/10/15/crear-una-barra-de-navegacion-horizontal-con-listas-y-css/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 16:39:15 +0000</pubDate>
		<dc:creator>webealo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[horizontal]]></category>
		<category><![CDATA[menu]]></category>

		<guid isPermaLink="false">http://webealo.wordpress.com/?p=38</guid>
		<description><![CDATA[Vamos a crear una barra de navegación horizontal dinámica, usando etiquetas HTML y CSS. Conseguiremos que los elementos de la lista estén uno detrás de otro en la misma línea. También cada elemento será un enlace que al poner el cursor del ratón encima, destaque de alguna manera. Código HTML de la barra  de navegación, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=38&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Vamos a crear una barra de navegación horizontal dinámica, usando etiquetas HTML y CSS.</p>
<p style="text-align:justify;">Conseguiremos que los elementos de la lista estén uno detrás de otro en la misma línea. También cada elemento será un enlace que al poner el cursor del ratón encima, destaque de alguna manera.</p>
<div id="attachment_44" class="wp-caption aligncenter" style="width: 447px"><a href="http://webealo.files.wordpress.com/2008/10/menu_horizontal.jpg"><img class="size-full wp-image-44" title="menu_horizontal" src="http://webealo.files.wordpress.com/2008/10/menu_horizontal.jpg?w=500" alt="ejemplo de menú horizontal realizado con HTML y CSS"   /></a><p class="wp-caption-text">ejemplo de menú horizontal realizado con HTML y CSS</p></div>
<p><span id="more-38"></span></p>
<p>Código <em>HTML </em>de la barra  de navegación, creada con listas:</p>
<p style="padding-left:60px;"><span style="color:#000080;">&lt;div id=”navegador”&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href=”#”&gt;Elemento 1&lt;/a&gt;&lt;/li&gt;<br />
</span><span style="color:#000080;"> </span><span style="color:#000080;">&lt;li&gt;&lt;a href=”#”&gt;Elemento 2&lt;/a&gt;&lt;/li&gt;<br />
</span><span style="color:#000080;"> </span><span style="color:#000080;">&lt;li&gt;&lt;a href=”#”&gt;Elemento 3&lt;/a&gt;&lt;/li&gt;<br />
</span><span style="color:#000080;"> </span><span style="color:#000080;">&lt;li&gt;&lt;a href=”#”&gt;Elemento 4&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;</span></p>
<p style="text-align:justify;">Tenemos una capa llamada “<em>navegador</em>” y dentro el código de las listas. Elementos <em>LI </em>con enlace.</p>
<p>Código CSS  de la lista:</p>
<p>En primer lugar definiremos  el estilo de la lista (UL):</p>
<p style="padding-left:60px;"><span style="color:#000080;">#navegador  ul {<br />
list-style-type:none;<br />
text-align:center;<br />
}</span></p>
<p style="text-align:justify;">Con list-style-type, indicaremos al navegador que no nos muestre las marcas al lado de los elementos de la lista. Y text-align, para centrarla.</p>
<p>Vamos a crear los estilos de cada uno de los elementos de las listas (LI):</p>
<p style="padding-left:60px;"><span style="color:#000080;">#navegador li {<br />
display:inline;<br />
text-align:center;<br />
margin:0 10px 0 0;<br />
}</span></p>
<p style="text-align:justify;">Con la etiqueta display:inline conseguiremos que los elementos de las listas, se pinten uno detrás de otro en la misma línea. Con text-align:center, mostraremos el texto centrado y con margin, la separación de cada elemento.</p>
<p>Para crear los estilos de los enlaces de nuestra barra de navegación, podemos usar este código:</p>
<p style="padding-left:60px;"><span style="color:#000080;">#navegador li a {<br />
padding:2px 7px 2px 7px;<br />
color:#666;<br />
background-color:#eee;<br />
border:1px solid #ccc;<br />
text-decoration:none;<br />
}</span></p>
<p style="text-align:justify;">El padding, lo hemos puesto para que tenga espacio  a los lados. Esto viene bien, para que el área donde se pueda hacer clic sea mayor.  Con la etiqueta color le damos un color al texto del enlace. Le pintamos un fondo con background-color y le damos un borde. Para quitar el subrayado de los enlaces, hemos usado text-decoration:none.</p>
<p>Utilizaremos la pseudoclase hover para definir un estilo distinto cuando pasa el ratón por encima:</p>
<p style="padding-left:60px;"><span style="color:#000080;">#navegador a:hover {<br />
background-color:#333;<br />
color:#fff;<br />
}</span></p>
<p>Esto es todo lo que necesitamos para crear un menú de navegación con listas.</p>
<p>Código de fuente:</p>
<p style="padding-left:30px;"><span style="color:#000080;">&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;Barra de navegación horizontal con listas y estilos CSS&lt;/title&gt;</span></p>
<p style="padding-left:30px;"><span style="color:#000080;">&lt;style type=&#8221;text/css&#8221;&gt;<br />
#navegador ul{<br />
list-style-type: none;<br />
text-align: center;<br />
}<br />
#navegador li{<br />
display: inline;<br />
text-align: center;<br />
margin: 0 10px 0 0;<br />
}<br />
#navegador li a {<br />
padding: 2px 7px 2px 7px;<br />
color: #666;<br />
background-color: #eeeeee;<br />
border: 1px solid #ccc;<br />
text-decoration: none;<br />
}<br />
#navegador li a:hover{<br />
background-color: #333333;<br />
color: #ffffff;<br />
}<br />
&lt;/style&gt;<br />
&lt;/head&gt;</span></p>
<p style="padding-left:30px;"><span style="color:#000080;">&lt;body&gt;</span></p>
<p style="padding-left:30px;"><span style="color:#000080;">&lt;div id=&#8221;navegador&#8221;&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Elemento 1&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Elemento 2&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Elemento 3&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Elemento 4&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;</span></p>
<p style="padding-left:30px;"><span style="color:#000080;">&lt;/body&gt;<br />
&lt;/html&gt;</span></p>
<p>Fuente: <a class="alignleft" href="http://www.desarrolloweb.com/articulos/barra-navegacion-horizontal-listas-css.html" target="_blank">http://www.desarrolloweb.com/articulos/barra-navegacion-horizontal-listas-css.html</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webealo.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webealo.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webealo.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webealo.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webealo.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webealo.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webealo.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webealo.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webealo.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webealo.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webealo.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webealo.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webealo.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webealo.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=38&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webealo.wordpress.com/2008/10/15/crear-una-barra-de-navegacion-horizontal-con-listas-y-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4304ba6fcf0934703a2df52d757f36f6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster de webealo</media:title>
		</media:content>

		<media:content url="http://webealo.files.wordpress.com/2008/10/menu_horizontal.jpg" medium="image">
			<media:title type="html">menu_horizontal</media:title>
		</media:content>
	</item>
		<item>
		<title>Alineación vertical con CSS</title>
		<link>http://webealo.wordpress.com/2008/10/15/alineacion-vertical-con-css/</link>
		<comments>http://webealo.wordpress.com/2008/10/15/alineacion-vertical-con-css/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 15:39:30 +0000</pubDate>
		<dc:creator>webealo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[trucos]]></category>

		<guid isPermaLink="false">http://webealo.wordpress.com/?p=32</guid>
		<description><![CDATA[Buscando por la red, me he encontrado varios métodos para alinear verticalmente texto, sin usar tablas y el atributo valign=&#8221;middle&#8221;. CSS 2, no soporta la alineación vertical de los elementos, por lo que mostraré un hack o truco para que sea viable en cualquier explorador. Este hack se basa en alinear verticalmente por medio de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=32&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Buscando por la red, me he encontrado varios métodos para alinear verticalmente texto, sin usar tablas y el atributo valign=&#8221;middle&#8221;.</p>
<p style="text-align:justify;">CSS 2, no soporta la alineación vertical de los elementos, por lo que mostraré un hack o truco para que sea viable en cualquier explorador. Este hack se basa en alinear verticalmente por medio de una imagen. Aprovechamos que la imagen tiene un atributo vertical-align:middle; que sirve para que el texto que hay después de la imagen esté alineado a su mitad vertical.</p>
<p style="text-align:justify;"><span id="more-32"></span></p>
<p>Definimos los estilos para una imagen:</p>
<p style="padding-left:60px;"><span style="color:#333399;">&lt;style type=&#8221;text/css&#8221;&gt;<br />
img.valign {<br />
height:100%;<br />
vertical-align:middle;<br />
width:0px;<br />
}<br />
&lt;/style&gt;</span></p>
<p style="text-align:justify;">En la hoja de estilos de la imagen, definimos la altura a 100%, para que se adapte a la altura del contenedor donde se insertará el elemento. La etiqueta vertical-align:middle, es la alineación que tendrá el texto que acompañe a esta imagen antes o después. Y la anchura a 0px, ya que no queremos que se pinte la imagen, solo el texto.</p>
<p>Creamos ahora la capa  con un contenido alineado vertical:</p>
<p style="padding-left:30px;"><span style="color:#333399;">&lt;div style=”height:220px; background-color:#54f”&gt;<br />
Contenido alineado verticalmente &lt;img class=”valign” /&gt;<br />
&lt;/div&gt;</span></p>
<p style="text-align:justify;">La etiqueta div puede tener la altura que necesitemos  así como el color del fondo.<br />
Vemos que se ha colocado una imagen dentro de la capa asignándola una clase definida en el CSS, pero sin src ni ningún otro atributo ya que no queremos que se muestre ninguna imagen.</p>
<p style="text-align:justify;">El truco funciona en Internet Explorer, Firefox y Opera, con lo que es un hack css perfectamente usable y compatible con la mayoría de los navegadores.</p>
<p style="text-align:justify;">Lo malo es que esta alineación vertical sólo funcionará, en caso que el contenido de la capa no supere una línea. En el momento que el texto de la capa tenga varias líneas, sólo se, alineará verticalmente una de ellas, la primera o la última, dependiendo de donde se haya colocado la imagen, delante o detrás del texto.</p>
<p>Fuente: <a class="alignleft" title="alineación vertical por desarrolloweb.com" href="http://www.desarrolloweb.com/articulos/alineacion-vertical-css.html" target="_blank">http://www.desarrolloweb.com/articulos/alineacion-vertical-css.html</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webealo.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webealo.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webealo.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webealo.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webealo.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webealo.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webealo.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webealo.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webealo.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webealo.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webealo.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webealo.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webealo.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webealo.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=32&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webealo.wordpress.com/2008/10/15/alineacion-vertical-con-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4304ba6fcf0934703a2df52d757f36f6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster de webealo</media:title>
		</media:content>
	</item>
		<item>
		<title>Ada Lovelace: Primera programadora de la Historia</title>
		<link>http://webealo.wordpress.com/2008/10/11/ada-lovelace-primera-programadora-de-la-historia/</link>
		<comments>http://webealo.wordpress.com/2008/10/11/ada-lovelace-primera-programadora-de-la-historia/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 23:23:31 +0000</pubDate>
		<dc:creator>webealo</dc:creator>
				<category><![CDATA[Curiosidades]]></category>
		<category><![CDATA[ada]]></category>
		<category><![CDATA[curioso]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://webealo.wordpress.com/?p=25</guid>
		<description><![CDATA[Ada no fue una mujer convencional. Vivió en Londres en la época Victoriana, nació un 18 de diciembre de 1815 (aun no se determina bien el año). Hija del famoso Poeta Lord George Gordon Byron y una adinerada mujer llamada Anabella, quienes se separaron dos meses depues de nacer Ada, pues Byron era un hombre [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=25&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_26" class="wp-caption alignleft" style="width: 80px"><a href="http://webealo.files.wordpress.com/2008/10/ada_lovelace.jpg"><img class="size-medium wp-image-26" title="ada_lovelace" src="http://webealo.files.wordpress.com/2008/10/ada_lovelace.jpg?w=70&#038;h=112" alt="ada_lovelace." width="70" height="112" /></a><p class="wp-caption-text">ada_lovelace.</p></div>
<p>Ada no fue una mujer convencional. Vivió en Londres en la época Victoriana,  nació un 18 de diciembre de 1815 (aun no se determina bien el año). Hija del  famoso Poeta Lord George Gordon Byron y una adinerada mujer llamada  Anabella, quienes se separaron dos meses depues de nacer Ada, pues Byron era un  hombre de letras, poeta, bohemio, conquistador de mujeres y soñador, mientras  Anabella era una mujer estricta y disciplinada.</p>
<p>Fuente: <a href="http://www.chicaslinux.org/?q=node/122" target="_blank">http://www.chicaslinux.org/?q=node/122</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webealo.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webealo.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webealo.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webealo.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webealo.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webealo.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webealo.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webealo.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webealo.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webealo.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webealo.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webealo.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webealo.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webealo.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=25&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webealo.wordpress.com/2008/10/11/ada-lovelace-primera-programadora-de-la-historia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4304ba6fcf0934703a2df52d757f36f6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster de webealo</media:title>
		</media:content>

		<media:content url="http://webealo.files.wordpress.com/2008/10/ada_lovelace.jpg?w=188" medium="image">
			<media:title type="html">ada_lovelace</media:title>
		</media:content>
	</item>
		<item>
		<title>El arma secreta de Franco</title>
		<link>http://webealo.wordpress.com/2008/10/11/el-arma-secreta-de-franco/</link>
		<comments>http://webealo.wordpress.com/2008/10/11/el-arma-secreta-de-franco/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 22:55:06 +0000</pubDate>
		<dc:creator>webealo</dc:creator>
				<category><![CDATA[Curiosidades]]></category>
		<category><![CDATA[curioso]]></category>
		<category><![CDATA[maquinas]]></category>

		<guid isPermaLink="false">http://webealo.wordpress.com/?p=20</guid>
		<description><![CDATA[Franco contó durante la Guerra Civil con un arma secreta que le permitió estar conectado de forma segura y permanente con sus principales generales para coordinar las ofensivas bélicas y mantener a los militares republicanos ciegos sobre sus intenciones. Fuente: http://www.elpais.com/articulo/espana/arma/secreta/Franco/elpepuesp/20081011elpepunac_5/Tes<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=20&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://webealo.files.wordpress.com/2008/10/varias_maquinas_descifradoras1.jpg"><img class="alignleft size-full wp-image-22" title="varias_maquinas_descifradoras1" src="http://webealo.files.wordpress.com/2008/10/varias_maquinas_descifradoras1.jpg?w=500" alt=""   /></a>Franco contó durante la Guerra Civil con un arma secreta que le permitió estar  conectado de forma segura y permanente con sus principales generales para  coordinar las ofensivas bélicas y mantener a los militares republicanos ciegos  sobre sus intenciones.</p>
<p>Fuente: <a href="http://www.elpais.com/articulo/espana/arma/secreta/Franco/elpepuesp/20081011elpepunac_5/Tes" target="_blank">http://www.elpais.com/articulo/espana/arma/secreta/Franco/elpepuesp/20081011elpepunac_5/Tes</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webealo.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webealo.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webealo.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webealo.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webealo.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webealo.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webealo.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webealo.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webealo.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webealo.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webealo.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webealo.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webealo.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webealo.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=20&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webealo.wordpress.com/2008/10/11/el-arma-secreta-de-franco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4304ba6fcf0934703a2df52d757f36f6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster de webealo</media:title>
		</media:content>

		<media:content url="http://webealo.files.wordpress.com/2008/10/varias_maquinas_descifradoras1.jpg" medium="image">
			<media:title type="html">varias_maquinas_descifradoras1</media:title>
		</media:content>
	</item>
		<item>
		<title>Las hojas de estilo en cascada (Cascading Style Sheets, CSS)</title>
		<link>http://webealo.wordpress.com/2008/10/06/las-hojas-de-estilo-en-cascada-cascading-style-sheets-css/</link>
		<comments>http://webealo.wordpress.com/2008/10/06/las-hojas-de-estilo-en-cascada-cascading-style-sheets-css/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 06:42:19 +0000</pubDate>
		<dc:creator>webealo</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://webealo.wordpress.com/?p=14</guid>
		<description><![CDATA[Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguaje formal usado para definir la presentación de un documento estructurado escrito en HTML o XML (y por extensión en XHTML). El W3C (World Wide Web Consortium) es el encargado de formular la especificación de las hojas de estilo que servirán de estándar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=14&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguaje formal usado para definir la presentación de un documento estructurado escrito en HTML o XML (y por extensión en XHTML). El W3C (World Wide Web Consortium) es el encargado de formular la especificación de las hojas de estilo que servirán de estándar para los agentes de usuario o navegadores.</p>
<p>La idea que se encuentra detrás del desarrollo de CSS es separar la estructura de un documento de su presentación.</p>
<p><span id="more-14"></span></p>
<p>La información de estilo puede ser adjuntada tanto como un documento separado o en el mismo documento HTML. En este último caso podrían definirse estilos generales en la cabecera del documento o en cada etiqueta particular mediante el atributo &#8220;style&#8221;.</p>
<p>CSS proporciona tres caminos diferentes para aplicar las reglas de estilo a una página Web:</p>
<ul>
<li><strong>1. Una hoja de estilo externa</strong>, que es una hoja de estilo que está almacenada en un archivo diferente al archivo donde se almacena el código HTML de la página Web. Esta es la manera de programar más potente, porque separa completamente las reglas de formateo para la página HTML de la estructura básica de la página.</li>
<li><strong>2. Una hoja de estilo interna</strong>, que es una hoja de estilo que está incrustada dentro de un documento HTML. (Va a la derecha dentro del elemento ). De esta manera se obtiene el beneficio de separar la información del estilo, del código HTML propiamente dicho. Se puede optar por copiar la hoja de estilo incrustada de una página a otra, (esta posibilidad es difícil de ejecutar si se desea para guardar las copias sincronizadas). En general, la única vez que se usa una hoja de estilo interna, es cuando se quiere proporcionar alguna característica a una página Web en un simple fichero, por ejemplo, si se está enviando algo a la página web.</li>
<li><strong>3. Un estilo en línea</strong>, que es un método para insertar el lenguaje de estilo de página, directamente, dentro de una etiqueta HTML. Esta manera de proceder no es excesivamente adecuada. El incrustar la descripción del formateo dentro del documento de la página Web, a nivel de código se convierte en una tarea larga, tediosa y poco elegante de resolver el problema de la programación de la página. Este modo de trabajo se podría usar de manera ocasional si se pretende aplicar un formateo con prisa, al vuelo. No es todo lo claro, o estructurado, que debería ser, pero funciona.</li>
</ul>
<p>Las ventajas de utilizar CSS (u otro lenguaje de estilo) son:</p>
<ul>
<li>Control centralizado de la presentación de un sitio web completo con lo que se agiliza de forma considerable la actualización del mismo.</li>
<li>Los Navegadores permiten a los usuarios especificar su propia hoja de estilo local que será aplicada a un sitio web, con lo que aumenta considerablemente la accesibilidad. Por ejemplo, personas con deficiencias visuales pueden configurar su propia hoja de estilo para aumentar el tamaño del texto o remarcar más los enlaces.</li>
<li>Una página puede disponer de diferentes hojas de estilo según el dispositivo que la muestre o incluso a elección del usuario. Por ejemplo, para ser impresa, mostrada en un dispositivo móvil, o ser &#8220;leída&#8221; por un sintetizador de voz.</li>
<li>El documento HTML en sí mismo es más claro de entender y se consigue reducir considerablemente su tamaño (siempre y cuando no se utilice estilo en línea).</li>
</ul>
<p>Hay varias versiones: CSS1 y CSS2, con CSS3 en desarrollo por el World Wide Web Consortium (W3C). Los navegadores modernos implementan CSS1 bastante bien, aunque existen pequeñas diferencias de implementación según marcas y versiones de los navegadores. CSS2, sin embargo, está solo parcialmente implementado en los más recientes.</p>
<p>Antes de que estuviera disponible CSS, la única forma de componer espacialmente una página era el uso de tablas. Aunque es una técnica cómoda y versátil, se está usando un elemento con una semántica particular, que es la de expresar información tabular, solamente por su efecto en la presentación.</p>
<p>La introducción de CSS ha permitido en muchos casos reemplazar el uso de tablas. Sin embargo CSS todavía no permite la versatilidad que ofrecían las tablas, lograr un diagramado de una página compleja suele ser una tarea difícil en CSS y las diferencias entre navegadores dificultan aún más la tarea. Se espera que futuros desarrollos en CSS3 resuelvan esta deficiencia y hagan de CSS un lenguaje más apto para describir la estructura espacial de una página.</p>
<p>Fuente: <a href="http://es.wikipedia.org/wiki/Css" target="_blank">http://es.wikipedia.org/wiki/Css</a></p>
<p>Más información en: <a href="http://www.customerca.com/Style/CSS/" target="_blank">http://www.customerca.com/Style/CSS/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webealo.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webealo.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webealo.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webealo.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webealo.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webealo.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webealo.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webealo.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webealo.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webealo.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webealo.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webealo.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webealo.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webealo.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webealo.wordpress.com&amp;blog=4899371&amp;post=14&amp;subd=webealo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webealo.wordpress.com/2008/10/06/las-hojas-de-estilo-en-cascada-cascading-style-sheets-css/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4304ba6fcf0934703a2df52d757f36f6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webmaster de webealo</media:title>
		</media:content>
	</item>
	</channel>
</rss>
