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

<channel>
	<title>emmgfx &#187; Internet Explorer</title>
	<atom:link href="http://www.emm-gfx.net/etiqueta/internet-explorer/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.emm-gfx.net</link>
	<description>Y ahora sin más; construye y destruye.</description>
	<lastBuildDate>Thu, 29 Jul 2010 12:21:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>inline-block cross-browser</title>
		<link>http://www.emm-gfx.net/2009/07/inline-block-cross-browser/</link>
		<comments>http://www.emm-gfx.net/2009/07/inline-block-cross-browser/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 09:40:20 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=33</guid>
		<description><![CDATA[En Foo Hack publicaron un recurso CSS que a veces utilizo y creo que estaría bien compartir, el problema es que no explican para qué sirve hacer lo que explican, y eso es lo que voy a hacer. Hay tres valores principales para el atributo display de CSS; normal, block e inline-block. El primero no [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2009%2F07%2Finline-block-cross-browser%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2009%2F07%2Finline-block-cross-browser%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>En <a href="http://foohack.com/2007/11/cross-browser-support-for-inline-block-styling/" target="_blank">Foo Hack</a> publicaron un recurso CSS que a veces utilizo y creo que estaría bien compartir, el problema es que no explican para qué sirve hacer lo que explican, y eso es lo que voy a hacer.</p>
<p>Hay tres <a href="http://www.emm-gfx.net/wp-content/uploads/2009/07/displays.gif" class="fancy" rel="display">valores principales para el atributo <code>display</code></a> de CSS; normal, block e inline-block.</p>
<ul>
<li>El primero no modifica el formato del contenedor al que se aplica, es decir, si es un div y se deja el <code>display</code> normal seguirá ocupando el 100% del ancho que disponga del contenedor padre.</li>
<li>El segundo si lo modifica, puede usarse por ejemplo para enlaces, para hacer que el enlace ocupe un tamaño determinado y se pueda hacer click en toda la zona que ocupa visualmente, no sólo en el texto. Esto es quizá dificil de entender pero con un par de ejemplos es más fácil: los <a href="http://www.emm-gfx.net/wp-content/uploads/2009/07/displays2.gif" class="fancy" rel="display">enlaces de la cabecera de Facebook</a> a día de hoy podrían estar hechos con <code>display:inline-block;</code> por que el enlace ocupa un tamaño determinado y para pulsarlo no hace falta que el click se haga en el mismo texto del enlace. Si el <code>display</code> fuera normal, el enlace sólo serviría desde la zona de texto, si se hace click fuera no serviría de nada.</li>
<li><code>display:block</code> sirve para eso, pero puede que no siempre sea lo que se quiere hacer. El valor block posiciona los elementos uno encima del otro, y pocas veces se quiere hacer eso. Lo más normal es que se coloquen uno al lado del otro hasta que llegue al limite de ancho y entonces haga una fila nueva. Para eso se hizo el <code>display:inline-block</code>.
</ul>
<p>El problema es que en bastantes navegadores el valor inline-block simplemente no existe (en todos los nuevos funciona sin problemas) y ante la duda parece comportarse como un block. Pero hay una forma de que funcione bien en &#8220;todos&#8221; los navegadores (lo pongo entre comillas por que en <a href="http://tredosoft.com/Multiple_IE">Explorer 3, 4.01, 5.01 o 5.55</a> ni lo he probado). Sólo hay que utilizar estos valores y el <em>hack</em> * para algunos explorers.</p>
<pre lang="html" line="1">
display:-moz-inline-stack;
display:inline-block;
zoom:1;
*display:inline;
</pre>
<p>Aunque yo soy de los que piensa que lo mejor es no dejar acceder a la aplicación a quienes no actualizan su navegador, entiendo que haya quien utiliza navegadores antiguos por razones extrañas; por eso siempre van bien este tipo de &#8220;hacks&#8221; que ensucian el código y frenan la mejora de la web.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/hydrax-skyx-y-paradise-engine/" title="Hydrax, Skyx y Paradise Engine">Hydrax, Skyx y Paradise Engine</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/eliminar-posicion-de-un-array-en-php/" title="Eliminar posición de un array en PHP">Eliminar posición de un array en PHP</a> (2)</li><li><a href="http://www.emm-gfx.net/2009/11/ui-is-the-killer-feature/" title="UI is the killer feature">UI is the killer feature</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/11/str_replace-de-php-en-javascript/" title="str_replace() de PHP en Javascript">str_replace() de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/08/quitar-el-borde-de-los-input-con-foco-en-safari-y-chrome/" title="Quitar el borde de los input con foco en Safari y Chrome">Quitar el borde de los input con foco en Safari y Chrome</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/07/centrar-texto-en-vertical/" title="Centrar texto en vertical">Centrar texto en vertical</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/07/pngfix-js-para-internet-explorer-7/" title="PNGfix.js para Internet Explorer">PNGfix.js para Internet Explorer</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/01/retrasar-eventos-y-efectos-de-jquery/" title="Retrasar eventos y efectos de jQuery">Retrasar eventos y efectos de jQuery</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2009/07/inline-block-cross-browser/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PNGfix.js para Internet Explorer</title>
		<link>http://www.emm-gfx.net/2009/07/pngfix-js-para-internet-explorer-7/</link>
		<comments>http://www.emm-gfx.net/2009/07/pngfix-js-para-internet-explorer-7/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 09:35:13 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[PNG]]></category>
		<category><![CDATA[PNGfix.js]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=21</guid>
		<description><![CDATA[Hasta la última versión de Internet Explorer, la 8 incluida, las imagenes en formato PNG siguen mostrandose mal. Es uno de los problemas más grandes de Internet Explorer, por que las especificaciones del formato estan estandarizadas desde hace unos 10 años y aunque han mejorado el soporte para él, el comportamiento sigue siendo risible. Lo [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2009%2F07%2Fpngfix-js-para-internet-explorer-7%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2009%2F07%2Fpngfix-js-para-internet-explorer-7%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Hasta <a href="http://www.microsoft.com/latam/windows/internet-explorer/">la última versión de Internet Explorer,</a> la 8 incluida, las imagenes en <a href="http://es.wikipedia.org/wiki/Portable_Network_Graphics">formato PNG</a> siguen mostrandose mal. Es uno de los problemas más grandes de Internet Explorer, por que las especificaciones del formato estan estandarizadas desde hace unos 10 años y aunque han mejorado el soporte para él, el comportamiento sigue siendo risible.<span id="more-21"></span></p>
<p>Lo mejor del formato PNG es que permite transparéncias con diferentes niveles del canal alpha (la intensidad de la opacidad), al contrario que el formato GIF que sólo permite alpha 100 o alpha 0. Pero Ningúna versión de Internet Explorer funciona como debería con las opacidades:</p>
<ul>
<li>En la versión 6 (lanzado en agosto del 2001) la transparéncia simplemente no existe y muestra la imagen con un extraño color de fondo que no he sabido adivinar de dónde sale.</li>
<li>En la versión 7 se muestran bien, a no ser que la imagen tenga algún tipo de tratamiento con javascript (cambio de opacidad, &#8230;).</li>
<li>Y la versión 8 viene a comportarse igual de mal que la 7.</li>
</ul>
<p>En la <a class="fancy" href="http://www.emm-gfx.net/wp-content/uploads/2009/07/png.gif">captura de ejemplo</a> se ve la misma imagen en los tres estados que intento describir. La primera imagen es vista con Internet Explorer 7 y 8 después de tratarla con Javascript. La segunda imagen es vista con cualquier navegador (sin contar versiones de IE anteriores a la 7). Y la tercera imagen es vista con Internet Explorer 6 (y supongo que los inferiores serán igual o peor).</p>
<p>Para solucionar el problema de la tercera imagen se pueden aplicar filtros especificos de Internet Explorer (filter:progid:DXImageTransform.Microsoft.AlphaImageLoader) que corrigen el problema del color de fondo. Pero si ya es suficientemente incómodo tratar incluso las imagenes de formas diferentes según el navegador que se esté utilizando, a una mente brillante se le ocurrió la idea de hacer un tratamiento automático con Javascript, hizo un pequeño script y lo llamó PNGFix.</p>
<p>El uso de PNGfix es muy simple, sólo hay que guardar un archivo .js e incluirlo en el documento que se quiera corregir.</p>
<p>Para incluirlo se utilizan estas lineas, que lo incrustarán sólo si el navegador es inferior a Explorer 7 (por que este ya no lo necesita).</p>
<pre>&lt;!--[if lt IE 7]&gt;
&lt;mce:script defer="defer" type="text/javascript" mce_src="pngfix.js"&gt;&lt;/mce:script&gt;
&lt;![endif]--&gt;</pre>
<p>Y el archivo en cuestión (<a href="http://homepage.ntlworld.com/bobosola/pngfix.js" target="_blank">pngfix.js</a>) debería contener algo parecido a esto:</p>
<pre lang="Javascript" line="1">/*
Correctly handle PNG transparency in Win IE 5.5 &amp; 6.
http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.
*/

var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])

if ((version &gt;= 5.5) &amp;&amp; (document.body.filters))
{
   for(var i=0; i&lt;document.images.length; i++)
   {
      var img = document.images[i]
      var imgName = img.src.toUpperCase()
      if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
      {
         var imgID = (img.id) ? "id='" + img.id + "' " : ""
         var imgClass = (img.className) ? "class='" + img.className + "' " : ""
         var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
         var imgStyle = "display:inline-block;" + img.style.cssText
         if (img.align == "left") imgStyle = "float:left;" + imgStyle
         if (img.align == "right") imgStyle = "float:right;" + imgStyle
         if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
         var strNewHTML = "&lt;span " + imgID + imgClass + imgTitle
         + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
         + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
         + "(src=\'" + img.src + "\', sizingMethod='scale');\"&gt;&lt;/span&gt;"
         img.outerHTML = strNewHTML
         i = i-1
      }
   }
}</pre>
<p>Explicado esto, sólo me queda alegrarme de que Digg, Facebook y <a href="http://alt1040.com/2009/07/youtube-dejara-de-dar-soporte-para-internet-explorer-6-viva">Youtube</a> hayan decidido (por fin) dejar de dar soporte a Internet explorer 6.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/03/base64-encode-y-decode-en-javascript/" title="Base64 (encode y decode) en Javascript">Base64 (encode y decode) en Javascript</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/11/str_replace-de-php-en-javascript/" title="str_replace() de PHP en Javascript">str_replace() de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/09/aprender-jquery-1-que-es-y-por-que-usarlo/" title="Aprender jQuery, 1: Qué és y por qué usarlo.">Aprender jQuery, 1: Qué és y por qué usarlo.</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/07/detectar-peticion-ajax-con-php/" title="Detectar petición AJAX con PHP">Detectar petición AJAX con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/07/inline-block-cross-browser/" title="inline-block cross-browser">inline-block cross-browser</a> (2)</li><li><a href="http://www.emm-gfx.net/2009/01/retrasar-eventos-y-efectos-de-jquery/" title="Retrasar eventos y efectos de jQuery">Retrasar eventos y efectos de jQuery</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2009/07/pngfix-js-para-internet-explorer-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
