Bootstrap Twitter: div en conteneur avec une hauteur de 100%

en utilisant Twitter bootstrap (2), j'ai une page simple avec une barre de navigation, et à l'intérieur du container je veux ajouter un div avec une hauteur de 100% (au bas de l'écran). Mon css-fu est rouillé, et je n'y arrive pas.

simple HTML:

<body>
  <div class="navbar navbar-fixed-top">
   <!-- Rest of nav bar chopped from here -->
  </div>
  <div class="container fill">
    <div id="map"></div> <!-- This one wants to be 100% height -->
  </div>
</body>

Current CSS:

#map {
    width: 100%;
    height: 100%;
    min-height: 100%;
}

html, body {
    height: 100%;
}

.fill { 
    min-height: 100%;
}
  • EDIT *

j'ai ajouté la hauteur à la classe de remplissage comme suggéré ci-dessous. Mais, le problème est-ce que j'ajoute un rembourrage-top au corps pour tenir compte de la barre fixe au sommet. Cela affecte la hauteur de 100% de la div "map" et signifie qu'une barre de défilement est ajoutée - comme vu ici: http://jsfiddle.net/S3Gvf/2 / Quelqu'un peut-il me dire comment réparer?

97
demandé sur Matt Roberts 2012-07-27 00:54:14

3 réponses

mettre la classe .fill à height: 100%

.fill { 
    min-height: 100%;
    height: 100%;
}

JSFiddle

(j'ai mis un fond rouge pour #map pour que vous puissiez voir qu'il prend 100% de hauteur)

103
répondu Horen 2015-04-10 07:36:31

mise à Jour 2018

dans Bootstrap 4 , flexbox peut être utilisé pour obtenir un complet hauteur disposition qui remplit l'espace restant.

tout d'abord, le conteneur (parent) doit avoir une hauteur maximale:

Option 1_ ajouter une classe pour min-height: 100%; . Rappelez-vous que la hauteur minimale seulement fonctionne si le parent a une hauteur définie:

html, body {
  height: 100%;
}

.min-100 {
    min-height: 100%;
}

https://www.codeply.com/go/dTaVyMah1U

Option 2_ Utiliser vh parts:

.vh-100 {
    min-height: 100vh;
}

https://www.codeply.com/go/kMahVdZyGj

ensuite, utilisez la colonne de direction de flexbox d-flex flex-column sur le conteneur, et flex-grow-1 sur tout enfant divs (i.e.: row ) que vous voulez remplissez la hauteur restante.

Voir Aussi:

Bootstrap 4 Navbar et content fill height flexbox

Bootstrap-remplir le réservoir de liquide entre l'en-tête et le pied de page

Bootstrap 4: Comment faire pour que la rangée étire la hauteur restante?

2
répondu Zim 2018-06-26 02:29:56

, vous devez ajouter un padding-top à "remplir" de l'élément, en plus d'ajouter box-sizing:border-box - échantillon ici bootply

1
répondu mamezito 2015-08-17 13:34:33