Le petit diable de la barre de défilement est vraiment ennuyeux. Concernant l'endroit exact où elle occupe, j'ai trouvé un blog comme celui-ci D'après les résultats pratiques, cela semble être le cas :
.La barre de défilement occupe la position du contenu, mais s'affiche à côté du contenu. (Selon l'effet réel, il est affiché à côté de la bordure, à l'intérieur de la bordure)
Ensuite, il y a un clientHeight en js, et la définition de MDN est :
La propriétéElement.clientWidth représente la largeur interne de l'élément, en pixels. Cette propriété inclut le remplissage, mais n'inclut pas les barres de défilement verticales (le cas échéant), les bordures ou les marges.
Cet attribut est utile. Par exemple, j'ai un p rose, la largeur et la hauteur sont de 100 px, le padding-right est de 20 px (partie bleue), clientWidth est la largeur interne de 83 px (100-17, 17 est la largeur du défilement). bar) plus padding - Les 20 pixels de droite sont égaux à 103 pixels. Quelle est l'utilité de cette chose ? ! Quel est le problème de supprimer la barre de défilement avec une ampoule au milieu ?
Cet attribut a-t-il une utilité pratique ? Je pense qu'il est très peu fiable d'utiliser cette méthode pour obtenir la largeur et la hauteur de la fenêtre. Pourquoi utilisez-vous body.clientWidth
pour obtenir la taille de la fenêtre d'affichage de la page en élévation js ?
PS, existe-t-il une description officielle standard des fonctionnalités des barres de défilement ?
1. Fenêtre du navigateur
À l'heure actuelle, la largeur de la balise body obtenue de cette manière n'est pas la taille de la fenêtre d'affichage
Ce qui précède correspond à la largeur de la fenêtre du navigateur sans la largeur de la barre de défilement verticale (généralement 17), et n'inclut pas la bordure extérieure du navigateur.
Il s'agit de la largeur de la zone visible dans la fenêtre du navigateur. Lorsqu'il n'y a pas de barre de défilement verticale, c'est exactement la même chose que document.documentElement.clientWidth S'il y a une barre de défilement verticale, elle inclura la barre de défilement verticale. largeur (généralement 17).
Donc, si vous souhaitez obtenir la largeur de la barre de défilement verticale, vous pouvez :
Deuxièmement, dans un certain élément p
html
css
js
Si vous souhaitez obtenir la largeur et la hauteur réelles d'un p, qu'il ait ou non une barre de défilement, vous devez utiliser offsetWidth, offsetHeight
Et clientWidth peut être utilisé pour calculer la largeur réelle de la barre de défilement verticale (parfois la largeur de la barre de défilement verticale est automatiquement définie, ce n'est pas la largeur par défaut 17)