Maison >interface Web >tutoriel CSS >Quelle est la différence entre « offsetWidth », « clientWidth » et « scrollWidth » (et leurs homologues en hauteur) ?
Comprendre offsetWidth, clientWidth, scrollWidth et leurs homologues en hauteur
Malgré de nombreuses demandes de renseignements sur StackOverflow et des informations confuses ou inexactes en ligne, comprendre les subtilités de offsetWidth, clientWidth, scrollWidth et leurs homologues en hauteur restent un défi.
Définitions et aides visuelles :
[Visuel du modèle de boîte CSS2 avec dimensions étiquetées]
Calcul de la largeur de la barre de défilement :
Puisque offsetWidth inclut la largeur de la barre de défilement, nous pouvons la calculer en utilisant le formule :
scrollbarWidth = offsetWidth - clientWidth - getComputedStyle().borderLeftWidth - getComputedStyle().borderRightWidth
Cependant, cette méthode peut générer des erreurs d'arrondi en raison de la nature entière de offsetWidth et clientWidth, qui peuvent ne pas refléter les dimensions fractionnaires réelles à des niveaux de zoom autres que 1.
Considérations supplémentaires :
Notez que les éléments suivants formula :
scrollbarWidth = getComputedStyle().width + getComputedStyle().paddingLeft + getComputedStyle().paddingRight - clientWidth
ne fournit pas de résultats fiables dans Chrome, car Chrome soustrait la largeur de la barre de défilement de la largeur indiquée. De plus, Chrome affiche paddingBottom au bas du contenu de défilement, contrairement aux autres navigateurs.
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!