10
votes

Pourquoi le navigateur renvoie une chaîne vide sur style.Height? Comment obtenir une hauteur réelle d'un élément?

une ligne simple de HTML:

singtext

et alerte donne:

mais il devrait être comme 10px ou qc comme ça.


3 commentaires

Avez-vous essayé de définir le style explicitement?

sonsext


Utilisez JQuery! Vous aurez un moment beaucoup plus simple, il a la fonction $ .Height () à raconter la hauteur. Vous pourriez également trouver qu'il n'y a pas de hauteur, vous devez donc vérifier la ligneHeight et le rembourrage (haut et bas).


Version Opera 11, mais ce n'est pas pertinent, même le navigateur n'est pas pertinent, j'ai d'abord pensé que ce n'est que Opera Quirk. Je changerai un peu la question.


4 Réponses :


4
votes

Je suppose que vous n'avez pas vraiment de règles de style définissant la hauteur de l'élément. Pour obtenir la hauteur rendue réelle d'un élément, utilisez ollement.clientheight .


0 commentaires

20
votes

Lorsque vous utilisez ceci.style.height, la hauteur doit avoir été spécifiée d'abord sur l'élément, comme celle-ci: xxx pré>

sinon, vous devez probablement utiliser offsetheight ou client: P >

<div onclick="alert(this.offsetHeight)">sometext</div>


4 commentaires

+1 ça marche. Mais comment? Quelle est la différence entre hauteur et offSetheight ?


La hauteur est disponible uniquement si vous avez explicitement défini la hauteur. Mais offSetheight sera toujours la hauteur calculée. Si vous n'êtes pas sûr sur le point d'utiliser soit un seul conseil simple consiste à utiliser offSetheight lorsque vous vérifiez quelle hauteur il a et hauteur lorsque vous définissez une nouvelle hauteur.


wat sur clientHeight ? Est-ce la même chose que offsetheight ?


Voir la question Stackoverflow.com/questions/4106538/...




1
votes

objet.style.whatever ver code> ne renvoie que les valeurs définies à l'aide de l'attribut Style dans le balisage ou la propriété de style dans le script, donc:

theDiv.style.height = "10px";


0 commentaires