Il y a toujours un grand espace blanc vide sous mon pied de page. Comment puis-je m'assurer que la page se termine à la fin du pied de page?
Dans tous les exemples suivants, je n'ai qu'un modèle HTML extrêmement basique en utilisant seulement trois divisions: en-tête, contenu et pied de page. Toutes les options sont réduites mais devraient fonctionner correctement sur les sites Web plus avancés.
Définissez pour le corps et le pied de page la même couleur de fond.
body {
margin: 0px;
font-family: Arial;
line-height: 20px;
background-color: red;
}
#header {
height: 20px;
background: #222;
color: white;
}
#content {
background: gray;
height: 200px;
}
#footer {
height: 20px;
background: red; /*Same as body, you could also use transparent */
color: white;
}
<div id="header">
Header
</div>
<div id="content">
Content
</div>
<div id="footer">
Footer
</div>
Utilisez un pied de page collant fixé en bas de la fenêtre du navigateur. (Je ne recommanderais pas cette option, car de nombreux utilisateurs n'aiment pas les pieds de page collants. Vous pouvez cependant utiliser un en-tête collant)
body {
margin: 0px;
font-family: Arial;
line-height: 20px;
}
#header {
height: 20px;
background: #222;
color: white;
}
#content {
height: 2000px;
}
#footer {
position: fixed;
width: 100%;
bottom: 0;
left: 0;
height: 20px;
background: #222;
color: white;
}
<div id="header">
Header
</div>
<div id="content">
Content
</div>
<div id="footer">
Footer
</div>
Définissez une hauteur minimale pour la div de contenu égale à la hauteur des fenêtres du navigateur moins la hauteur de l'en-tête et du pied de page. (Ceci est mon favori personnel car il fonctionne sur plusieurs navigateurs et est réactif sur tous les écrans)
body {
margin: 0px;
font-family: Arial;
line-height: 20px;
}
#header {
height: 20px;
background: #222;
color: white;
}
#content {
min-height: calc(100vh - 40px);
}
#footer {
height: 20px;
background: #222;
color: white;
}
<div id="header">
Header
</div>
<div id="content">
Content
</div>
<div id="footer">
Footer
</div>
La façon la plus simple d'y parvenir est de définir min-height pour le contenu au-dessus du pied de page comme ceci:
HTML:
<body>
<section>
This is content of the page
</section>
<footer>
Text of footer
</footer>
</body>
CSS:
section {
min-height: 100vh; /* minus the height of the footer */
}
lien jsfiddle: https://jsfiddle.net/x55xh3v7/
Mais la solution la plus "optimisée" est la technique du pied de page collant qui empêche le pied de page de s'écouler inutilement de la page.
Cela peut être fait comme ça aussi
#main{
border:solid;
height:100vh;
}
#footer{
border:solid;
}
<div id="main">
Everything here
</div>
<div id="footer">
footer
</div>
Je suggère d'utiliser javascript pour résoudre ce problème, quelque chose comme ceci:
if($(window).height() > $("body").height()){
$("footer").css("position", "fixed");
} else {
$("footer").css("position", "static");
}