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: 0et padding: 0sur le htmlet bodyne l'a pas réparé.

J'ai regardé overflow: hiddenmais je n'aime pas. J'ai également cherché à placer une clear:bothdiv 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:

  • Pourquoi cette barre de défilement verticale apparaît-elle ?

  • Comment puis-je supprimer la barre de défilement verticale ?

  • 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-sizingpour 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

    Posts les plus consultés de ce blog

    Comment signer la connexion OKEx API version 5 avec websockets ?

    La fonction GCP Cloud pour écrire des données dans BigQuery s'exécute avec succès, mais les données n'apparaissent pas dans la table BigQuery

    Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"