Maison >interface Web >tutoriel CSS >Quelle est la différence entre « offsetWidth », « clientWidth » et « scrollWidth » dans les éléments HTML ?

Quelle est la différence entre « offsetWidth », « clientWidth » et « scrollWidth » dans les éléments HTML ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-17 18:06:12398parcourir

What's the Difference Between `offsetWidth`, `clientWidth`, and `scrollWidth` in HTML Elements?

Comprendre les dimensions des éléments HTML : offsetWidth, clientWidth, scrollWidth et leurs homologues

Introduction

CSS et JavaScript fournissent diverses propriétés pour mesurer les dimensions des éléments HTML. Cependant, comprendre la différence entre offsetWidth, clientWidth, scrollWidth et leurs homologues en hauteur peut prêter à confusion. Cet article vise à clarifier ces propriétés et leurs applications pratiques.

Dimensions expliquées

  1. offsetWidth / offsetHeight :

    • Capture la taille visuelle totale d'un élément, y compris les bordures et padding.
    • Peut être calculé en tant que bordures de remplissage en largeur et en hauteur (si affichage : bloc).
  2. clientWidth / clientHeight :

    • Représente la zone de contenu visible, à l'exclusion des bordures et des barres de défilement, mais incluant padding.
    • Ne peut pas être calculé directement à partir du CSS car cela dépend de la taille de la barre de défilement du navigateur.
  3. scrollWidth / scrollHeight :

    • Indique la taille entière du contenu, y compris les parties actuellement masquées en dehors du défilement zone.
    • Ne peut pas être calculé à partir de CSS et dépend du contenu lui-même.

Représentation visuelle

[ Insérer un diagramme : boîte CSS2 Modèle](https://i.sstatic.net/5AAyW.png)

Calcul de la largeur de la barre de défilement

En utilisant offsetWidth et clientWidth, il est possible de calculer la largeur de la barre de défilement.

scrollbarWidth = offsetWidth - clientWidth - getComputedStyle().borderLeftWidth - getComputedStyle().borderRightWidth

Notez que des erreurs d'arrondi peuvent se produire en raison de la nature entière de offsetWidth et clientWidth.

Mises en garde

  • La largeur calculée de Chrome inclut la largeur de la barre de défilement, ce qui rend le calcul alternatif peu fiable.
  • Le remplissage est rendu différemment dans Chrome par rapport à d'autres navigateurs.

Conclusion

Cet article fournit une explication complète de offsetWidth, clientWidth, scrollWidth et de leurs équivalents en hauteur, permettant aux développeurs de mesurer et de calculer efficacement les éléments dimensions en JavaScript. Ces propriétés offrent des informations précieuses sur la disposition visuelle d'un élément, et comprendre leurs différences est essentiel pour des calculs précis de la largeur de la barre de défilement et d'autres tâches liées à la disposition.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn