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:
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.codice:table.style.visibility = "hidden"; table.style.position = "absolute"; table.style.display = "block"![]()
Sotto ho postato il codice su cui mi sono messo a provare.
Grazie dell'attenzione,
Luca
(home.html)
(script.js)codice:<html> <head> sono il titolo </head> <body> <script src="script.js"></script> </body> </html>
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.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);

Rispondi quotando