<?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>Sofá Naranja &#187; CSS</title>
	<atom:link href="http://sofanaranja.com/category/codigo/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://sofanaranja.com</link>
	<description>el blog de Ale Muñoz, donde hay menos naranja de lo que uno podría esperar con un nombre como este</description>
	<lastBuildDate>Tue, 31 May 2011 10:30:01 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19861</generator>
		<item>
		<title>Efecto :hover en cualquier cosa</title>
		<link>http://sofanaranja.com/2006/01/05/efecto-hover-en-cualquier-cosa/</link>
		<comments>http://sofanaranja.com/2006/01/05/efecto-hover-en-cualquier-cosa/#comments</comments>
		<pubDate>Thu, 05 Jan 2006 19:41:40 +0000</pubDate>
		<dc:creator>Ale Muñoz</dc:creator>
				<category><![CDATA[Código]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.sofanaranja.com/?p=45</guid>
		<description><![CDATA[Esta semana me preguntaron lo siguiente: ¿Cómo hacer un :hover en un DIV con Internet Explorer? No sé si se suponía que debía saberlo, pero la verdad es que me pilló un poco por sorpresa&#8230; ¿Con #iddeldiv:hover, no? (Comentario que &#8230; <a href="http://sofanaranja.com/2006/01/05/efecto-hover-en-cualquier-cosa/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Esta semana me preguntaron lo siguiente:</p>

<blockquote>
  <p>¿Cómo hacer un :hover en un DIV con Internet Explorer?</p>
</blockquote>

<p>No sé si se suponía que debía saberlo, pero la verdad es que me pilló un poco por sorpresa&#8230;</p>

<blockquote>
  <p>¿Con #id<em>del</em>div:hover, no?</p>
</blockquote>

<p>(Comentario que demuestra mi total ignorancia con respecto a las capacidades de Explorer)</p>

<blockquote>
  <p>Me temo que Explorer sólo soporta :hover en los &#8216;a&#8217;&#8230;</p>
</blockquote>

<p>Como uno es de naturaleza curiosa, me puse a trastear con el dilema, llegando a la siguiente solución (que no deja de ser una chapuza, pero que no sólo funciona en Explorer sino en Camino, Firefox y Safari):</p>

<pre><code>&lt;script&gt;
    function replaceHover(){
        var hoverDivs = document.getElementsByTagName("div");
        for(var i=0; i&lt;hoverDivs.length; i++){
            if(hoverDivs[i].className.indexOf('hover') != -1){
                //  ...guardamos las clases del DIV...
                var classes = hoverDivs[i].className;
                //  ...en onmouseover le añadimos una clase extra, 'hoverclass'...
                hoverDivs[i].onmouseover = function(){
                    this.className += ' hoverclass';
                }
                //  ...y se la quitamos en onmouseout
                hoverDivs[i].onmouseout = function(){
                    this.className = classes;
                }
            }
        }
    }
&lt;/script&gt;
</code></pre>

<p>Que quiere decir, en román paladino:</p>

<ul>
<li>Obtener todos los DIVs del documento</li>
<li>Mirar si el DIV tiene asignada una clase CSS &#8216;hover&#8217;</li>
<li>Si es así, le asignamos un evento &#8216;onmouseover&#8217;que le añade la clase &#8216;hoverclass&#8217;(que tendrá alguna pijadilla del estilo de background-color: rosachicle, o algo por el estilo)</li>
<li>Y ya puestos, se la quitamos cuando salga el ratón del DIV</li>
</ul>

<p>Para disparar el cambio se llama a la función &#8216;replaceHover&#8217;desde el &#8216;onload&#8217;de body:</p>

<pre><code>&lt;body onload="replaceHover()"&gt;
</code></pre>

<p>Obviamente, el código se puede usar con otros tags&#8230; sólo habría que cambiar el</p>

<pre><code>getElementsByTagName("div")
</code></pre>

<p>por</p>

<pre><code>getElementsByTagName("nombre_del_tag_que_quieras")
</code></pre>

<p>Pos eso&#8230; agradecimientos especiales a [Furilo][1] por darme algo en qué pensar&#8230; :D</p>

<p><strong>Update:</strong> <a href="/2006/02/17/efecto-hover-sobre-cualquier-cosa-v20/">un método mucho más elegante usando prototype.js</a></p>

<p>[1]: http://www.furilo.com<h3 class='related_post_title'>Contenido relacionado:</h3><ul class='related_post'><li>(aquí irían posts relacionados, pero creo que no tengo nada parecido a este&#8230;)</li></ul></p>
]]></content:encoded>
			<wfw:commentRss>http://sofanaranja.com/2006/01/05/efecto-hover-en-cualquier-cosa/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.297 seconds -->

