Maison >interface Web >tutoriel CSS >Pourquoi « 100vw » provoque-t-il parfois un débordement horizontal inattendu ?

Pourquoi « 100vw » provoque-t-il parfois un débordement horizontal inattendu ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-07 10:08:12792parcourir

Why Does `100vw` Sometimes Cause Unexpected Horizontal Overflow?

100vw provoquant un débordement horizontal inattendu

Lors de l'attribution d'une largeur de 100vw à un élément, vous pouvez vous attendre à ce qu'il occupe toute la largeur de la fenêtre d'affichage sans provoquant d'éventuels débordements. Cependant, dans certaines circonstances, des barres de défilement horizontales peuvent apparaître malgré l'utilisation de 100vw.

Considérons l'exemple suivant :

html, body {
  margin: 0;
  padding: 0;
}
.box {
  width: 100vw;
  height: 100vh;
}

<div class="box">Screen 1</div>

Dans ce scénario, l'élément .box remplira l'écran sans aucune barre de défilement. Cependant, si vous ajoutez un deuxième élément .box en dessous du premier :

<div class="box">Screen 1</div>
<div class="box">Screen 2</div>

Vous observerez l'apparition non seulement de barres de défilement verticales (attendues) mais également d'une légère barre de défilement horizontale.

La raison de ce comportement réside dans la manière dont 100vw est interprété par les navigateurs. Bien que cela signifie « 100 % de la largeur de la fenêtre », cela représente la partie visible de la fenêtre qui reste après avoir pris en compte l'épaisseur de la barre de défilement. Dans ce cas, la présence d'une barre de défilement verticale réduit la largeur de la fenêtre d'affichage disponible, ce qui peut provoquer un débordement horizontal du deuxième élément .box.

Pour résoudre ce problème, vous pouvez utiliser max-width: 100% sur le Élément .box :

.box {
  width: 100vw;
  height: 100vh;
  max-width: 100%;
}

Cela garantira que l'élément ne dépasse jamais la véritable largeur de la fenêtre d'affichage, empêchant ainsi tout débordement horizontal potentiel.

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