118 votes

Hauteur du corps 100% affichant la barre de défilement verticale

Par curiosité, si l'on considère l'exemple ci-dessous, pourquoi le fait d'avoir la marge sur le div #container provoque-t-il l'apparition d'une barre de défilement verticale dans le navigateur ? Le conteneur est beaucoup plus petit en hauteur que la hauteur du corps, qui est fixée à 100 %.

J'ai fixé le padding et les marges à 0 pour tous les éléments sauf le #container. Notez que j'ai délibérément omis le positionnement absolu sur le div #container. Dans ce cas, comment le navigateur calcule-t-il la hauteur du corps et comment la marge l'affecte-t-elle ?

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
* { padding:0; margin:0;}
html, body { height:100%; }
#container
{
  padding:10px;
  margin:50px;
  border:1px solid black;
  width: 200px;
  height: 100px;
}
</style>
</head>
<body>
  <div id='container'>
  </div>
</body>
</html>

Exemple également sur JSFiddle

-1voto

lalit bhakuni Points 522
html, body {
    height: 100%;
    overflow: hidden;
}

Si vous voulez supprimer le défilement du corps, ajoutez le style suivant :

body {
    height: 100%;
    overflow: hidden;
}

-1voto

evan Points 141

Inspiré par @BoltClock, j'ai essayé ceci et cela a fonctionné, même en faisant un zoom avant et arrière.

Browser: Chrome 51

html{
  height: 100%;
}
body{
  height: 100%;
  margin: 0px;
  position: relative;
  top: -20px;
}

Je suppose body a été déplacé de 20px vers le bas.

-1voto

Ça marche pour moi :

html,
body {
    height: 100%;
    height: -webkit-fill-available; // Chrome
}

// Firefox
@-moz-document url-prefix() {
    body {
        box-sizing: border-box; 
        margin: 0;
        padding: 1px;
    }
}

-3voto

NexusRex Points 690

Ajouter overflow: hidden; au html et au body.

html, body {
  height: 100%;
  overflow: hidden;
}

-10voto

user1254226 Points 1

J'ai trouvé une solution rapide : essayez de régler la hauteur à 99,99% au lieu de 100%.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X