El problema que tengo es que si defino en css los div con display:none, despues no puedo cambiarlo de ningun modo. La soluciones que he encontrado es usar la propiedad visibility, o quitando el display del css y asignarle esa propiedad al inicio de la pagina con js.
¿ Alguna luz de porque cuando se pone el display:none en css, no hace caso cuando se intenta cambiar con js ?
Dejo aqui un exctracto de codigo deonde he aislado el problema
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
#div1 {
z-index:1;
width:600px;
height:400px;
background:#fffcd1;
color:#444;
}
#div2 {
position: absolute;
z-index:2;
top:50px;
left:50px;
width:400px;
height:200px;
// display:none;
background:red;
color:#444;
}
#div3 {
position: absolute;
z-index:3;
top:100px;
left:100px;
width:200px;
height:100px;
// display:none;
background:blue;
color:#444;
}
function cambia(id) {
var fila = document.getElementById(id);
if (fila.style.display != "none") {
fila.style.display = "none"; //ocultar fila
} else {
fila.style.display = ""; //mostrar fila
}
}
function inicio() {
document.getElementById("div2").style.display = "none";
document.getElementById("div3").style.display = "none";
}
<body onload="javascript:inicio()">
aaaaaaaa1111
aaaaaaaa222222222
aaaaaaaa3333333333
<a href='javascript:cambia("div2")'>Mostras/ocultar el 2
</a><br> <a href='javascript:cambia("div3")'>Mostras/ocultar el 3
</a><br>