HTML/CSS : supprimer le défilement vertical avec hauteur : 100 % ;
Je crée deux colonnes que je veux remplir la page. Très simple. Cependant, j'obtiens une très légère barre de défilement verticale. Réglage margin: 0
et padding: 0
sur le html
et body
ne l'a pas réparé.
J'ai regardé overflow: hidden
mais je n'aime pas. J'ai également cherché à placer une clear:both
div en bas, mais cela n'a rien fait. J'ai cherché à utiliser min-height
, mais je n'arrive pas à le faire fonctionner correctement.
J'ai deux questions:
Exemple en direct : http://jsfiddle.net/XrYYA/
HTML :
<body>
<div id="palette">Palette</div>
<div id="canvas">Content</div>
</body>
CSS :
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#palette {
float: left;
width: 300px;
height: 100%;
border: 1px solid black;
}
#canvas {
margin-left: 300px;
height: 100%;
border: 1px solid blue;
}
Solution du problème
C'est à cause des bordures de 1px de chaque côté de l'élément.
100% + bordure(s) 2px!= 100%.
Vous pouvez utiliser box-sizing
pour inclure les bordures dans la hauteur de l'élément.
Exemple jsFiddle
div {
box-sizing:border-box;
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
}
Alternativement, vous pouvez utiliser calc()
pour soustraire le 2px.
height: calc(100% - 2px);
Exemple jsFiddle
Commentaires
Enregistrer un commentaire