Ciao a tutti!
Ho un div con display impostato a "none". Al suo interno ho un po' di oggetti, di uno in particolare (una tabella) vorrei misurare il clientWidth.
Il div principale, in quanto settato con display = "none", non occupa spazio, e lo stesso fanno gli oggetti al suo interno; pensavo di cavarmela dando alla tabella in questione questi settaggi:
codice:
table.style.visibility = "hidden";
table.style.position = "absolute";
table.style.display = "block"
Invece con un po' di prove, mi sono accorto che non funziona: ma position = "absolute" non dovrebbe rimuovere l'oggetto dal flusso della pagina? Mi aspettavo quindi che il div con display = "none" non avesse piu' effetto su un oggetto con position absolute.
Sotto ho postato il codice su cui mi sono messo a provare.
Grazie dell'attenzione,
Luca
(home.html)
codice:
<html>
<head>
sono il titolo
</head>
<body>
<script src="script.js"></script>
</body>
</html>
(script.js)
codice:
div=document.createElement('DIV'); // div principale
div.style.display = "none";
document.body.appendChild(div);
divInterno=document.createElement('DIV'); // div interno
div.appendChild(divInterno);
divInterno.style.width = "100px";
divInterno.style.height = "100px";
divInterno.style.backgroundColor = "red";
divInterno.style.position = "absolute"; // settaggi per misurare le dimensioni del div interno
divInterno.style.visibility = "hidden";
divInterno.style.display = "block";
alert("divInterno clientWidth: " + divInterno.clientHeight);
PS: l'unica soluzione alternativa che mi viene in mente e' fare un cloneNode della tabella di cui voglio avere le dimensioni e appenderla a document.body con visibility = "hidden", ma non l'ho mai sentita questa, deve essere proprio brutta come soluzione immagino.