Buenas,

Resulta que quiero centrar un elemento en bloque cuyo ancho es variable, 
por lo que no puedo utilizar margin: auto.

Hasta ahí es un problema de CSS, que si no estoy errado, no tiene solución.

Así que recurrí a Javascript para darle posicionamiento absoluto al 
elemento y combinar posición absoluta y margen negativo para ubicarlo 
donde quiero.


function centerNav() {
        // posiciono el elemento
        // esto no es correcto según el DOM, pero funciona
        document.getElementById("nav").style.position = "absolute";
        document.getElementById("nav").style.left = "50%";

        //obtengo el ancho
        ancho = document.getElementById("nav").offsetWidth;

        // calculo el margen negativo necesario
        margen = 0-ancho/2;
        margen += "";

        // aquí es donde no consigo que funcione en Firefox
        // IE se lo traga y consigo el efecto deseado
        document.getElementById("nav").style.marginLeft = margen;

}
window.onload = centerNav;

Investigué un poco y probé con:

document.getElementById("nav").style.setProperty("margin-left", margen, 
null);

pero tampoco logro que funcione en Firefox (IE no lo pasa, pero sería 
sencillo mandarle sólo lo que él quiera).

Así que ese es el problema: ¿cómo asigno el margen negativo? y/o ¿habría 
una mejor forma de hacerlo?

Gracias de antemano, saludos y feliz 2006!


-- 
Camilo Kawerín
27Sur comunicación & diseño
http://www.27sur.com
_______________________________________________
javaEScript mailing list
[email protected]
http://lists.scriptia.net/listinfo.cgi/javaescript-scriptia.net

Responder a