Ver Mensaje Individual
  #226 (permalink)  
Antiguo 03/09/2005, 13:01
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años
Puntos: 45
228. Corchetes de colores con CSS en IE

P: Quiero utilizar
Código PHP:
a:hover:before {content"["}
a:hover:after{content:"]"
sobre IE, que no lo soporta. ¿Alternativa?

R: Puedes copiar este codigo que mostrara corchetes naranjas antes y despues de todos los enlaces sólo cuando el raton esté encima. Incluso más estetico, pues no se deforma el contenido de la pagina. (Habria que tener cuidado con los enlaces que tienen como contenido imagenes y tal, eso de vuestra mano )

Código PHP:
<html>

<
head>

<
style>
.
corchetes {
    
color#f93; 
    
font-weight:bold;
    
width:3px
    
visibility:hidden
    
display:inline;
}
</
style>

</
head>

<
body>


<
a href="a.htm">enlace</atexto texto texto 
<a href="s.html">otro enlace</amas texto 
<a href="i.htm">y otro</ay se acaba aqui

<
script

// necesitaba dos funciones, el insertBefore que ya existe, y el insertAfter que nos lo sacamos de la manga
function insertAfter(parentnodereferenceNode) {
    
parent.insertBefore(nodereferenceNode.nextSibling);
}

// la coleccion de <a> (anchors)
var As=document.getElementsByTagName("A"); 
var 
corchete1,corchete2;

//por cada enlace
for(var a=0;a<As.length;a++) {

    
//quitamos los espacios anteriores y posteriores a los enlaces, que si no con el corchete oculto parecera doble espaciado
    
var anterior = As[a].previousSibling;
    if(
anterior!=null) {
        
anterior.nodeValue  anterior.nodeValue.substr(0,anterior.nodeValue.length-1); 
    }
    var 
siguiente = As[a].nextSibling;
    if(
siguiente!=null) {
        
siguiente.nodeValue siguiente.nodeValue.substr(1);
    }
    
    
//creamos los corchetes, y les aplicamos el estilo "corchetes"
    
corchete1=document.createElement("DIV");
    
corchete2=document.createElement("DIV");
    
corchete1.appendChilddocument.createTextNode("[") );
    
corchete2.appendChilddocument.createTextNode("]") );
    
corchete1.className=corchete2.className="corchetes";
    
    
//insertamos los corchetes antes y despues del enlace
    
As[a].parentNode.insertBeforecorchete1 , As[a] );
    
insertAfter( As[a].parentNodecorchete2, As[a] );
    
    
//los eventos que se ocuparan de poner los enlaces y quitarlos
    
As[a].onmouseover=function() { 
        
this.previousSibling.style.visibility="visible";
        
this.nextSibling.style.visibility="visible";
    }
    As[
a].onmouseout=function() { 
        
this.previousSibling.style.visibility="hidden";
        
this.nextSibling.style.visibility="hidden";
    }
}

</script>


</body>

</html> 
Debe ir al final de la pagina, por supuesto.

__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.

Última edición por KarlanKas; 06/09/2005 a las 01:51