Quelle est la meilleure façon de créer un élément d'une hauteur minimale de 100% sur une large gamme de navigateurs?
En particulier si vous avez une mise en page avec un header
et footer
de fixe height
,
Comment faire en sorte que la partie du contenu du milieu remplisse 100%
l'espace entre les deux avec la partie footer
fixe vers le bas?
min-height: 100vh;
. Ceci définit la hauteur égale ou supérieure à la taille de l'écran,vh: vertical height
. Pour en savoir plus: w3schools.com/cssref/css_units.asp .vh
est synonyme deviewport height
et vous pouvez donc également utiliservw
pourviewport width
etvmin
pour quelle que soit la dimension est la plus petite,viewport minimum
.Réponses:
J'utilise le suivant: Mise en page CSS - 100% hauteur
Fonctionne bien pour moi.
la source
Pour définir une hauteur personnalisée verrouillée quelque part:
la source
Voici une autre solution basée sur
vh
, ouviewpoint height
, pour plus de détails, visitez les unités CSS . Il est basé sur cette solution , qui utilise plutôt flex.Vous pouvez trouver plus d'informations ici:
la source
La réponse de kleolb02 semble plutôt bonne. une autre façon serait une combinaison du pied de page collant et du hack min-height
la source
Pour
min-height
fonctionner correctement avec les pourcentages, tout en héritant de son nœud parentmin-height
, l'astuce serait de définir la hauteur du nœud parent sur1px
, puis l'enfantmin-height
fonctionnera correctement.Page de démonstration
la source
Une
CSS
solution pure (#content { min-height: 100%; }
) fonctionnera dans de nombreux cas, mais pas dans tous - en particulier IE6 et IE7.Malheureusement, vous devrez recourir à une solution JavaScript afin d'obtenir le comportement souhaité. Cela peut être fait en calculant la hauteur souhaitée pour votre contenu
<div>
et en la définissant comme propriété CSS dans une fonction:Vous pouvez ensuite définir cette fonction comme gestionnaire pour les événements
onLoad
etonResize
:la source
Je suis d'accord avec Levik car le conteneur parent est défini sur 100% si vous avez des barres latérales et que vous voulez qu'elles remplissent l'espace pour rencontrer le pied de page, vous ne pouvez pas les définir à 100% car elles représenteront également 100% de la hauteur du parent. signifie que le pied de page finit par être abaissé lors de l'utilisation de la fonction d'effacement.
Pensez-y de cette façon si votre en-tête a une hauteur de 50px et que votre pied de page a une hauteur de 50px et que le contenu est juste ajusté automatiquement à l'espace restant, par exemple 100px, et que le conteneur de page est à 100% de cette valeur, sa hauteur sera de 200px. Ensuite, lorsque vous définissez la hauteur de la barre latérale à 100%, elle est alors de 200 px même si elle est censée s'ajuster parfaitement entre l'en-tête et le pied de page. Au lieu de cela, elle finit par être 50px + 200px + 50px donc la page est maintenant 300px car les barres latérales sont définies à la même hauteur que le conteneur de page. Il y aura un grand espace blanc dans le contenu de la page.
J'utilise Internet Explorer 9 et c'est ce que j'obtiens comme effet en utilisant cette méthode à 100%. Je ne l'ai pas essayé dans d'autres navigateurs et je suppose que cela peut fonctionner dans certaines des autres options. mais ce ne sera pas universel.
la source
Vous devez d'abord créer un
div
avecid='footer'
après votrecontent
div, puis simplement le faire.Votre HTML devrait ressembler à ceci:
Et le CSS:
la source
Essaye ça:
L'
div
élément sous le contenu div doit avoirclear:both
.la source
Probablement la solution la plus courte (ne fonctionne que dans les navigateurs modernes)
Ce petit morceau de CSS fait
"the middle content part fill 100% of the space in between with the footer fixed to the bottom"
:la seule exigence est que vous ayez besoin d'un pied de page à hauteur fixe.
Par exemple pour cette mise en page:
vous avez besoin de ce CSS:
la source
Vous pouvez essayer ceci: http://www.monkey-business.biz/88/horizontal-zentriertes-100-hohe-css-layout/ C'est 100% hauteur et centre horizontal.
la source
partagez simplement ce que j'ai été utilisé et fonctionne bien
la source
Comme mentionné dans la réponse d'Afshin Mehrabani, vous devez définir la hauteur du corps et du html à 100%, mais pour obtenir le pied de page, calculez la hauteur de l'emballage:
la source