11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Ayant fait des recherches sur internet concernant les différences les propriétés display et visibility j'ai cru comprendre que la première retirait l'élément du flux HTML, tandis que la seconde ne faisait que la masquer.

Maintenant, quand j'essaie d'obtenir par exemple, l'offsetHeight, d'un élément dont le display = "none", j'obtiens 0. Pareil pour tous les attributs à base d'offset. Y a-t-il un moyen d'obtenir ces valeurs pour une élément dont display="none" sans avoir a modifier cet attribut?

Merci!
Modifié par w1w1 (01 Nov 2006 - 11:58)
Hello,

Je ne pense pas qu'il soit possible de connaître la taille d'un élément sans demander au navigateur de l'afficher.

Si tu veux ruser, tu peux peut-être appliquer à l'élement quelque chose dans ce genre :
position: absolute; left: -9999px;
puis accéder aux attributs offset, mais je ne garantis pas que ça fonctionne.
Non, il faut obligatoirement afficher un élément pour que le navigateur puissse en calculer les dimensions. Pour une fois, c'est pas seulement IE qui fait la tête.
Tu peux éventuellement ruser avec un affichage hors-écran comme proposé ci-dessus.
Bonjour
voici un exemple trouvé sur Internet

<style type="text/css">
   div {
   border: 1px solid black;
   }
   .visibility {
visibility: hidden;
}
.display {
display: none;
}
</style>
<div>1 : Ceci est un div normal</div>
<div class="visibility">2 : Ceci est un div avec visibility: hidden</div>
<div>3 : Ceci est un div normal</div>
<div class="display">4 : Ceci est un div avec display: none</div>
<div>5 : Ceci est un div normal</div>


Ainsi tu remarques que l'élément de classe display:non a disparu et donc ses dimensions sont nulles.