Je suis nouveau dans CSS et j'essaie de configurer une page de telle sorte qu'il y ait toujours un marge/espace fixe entre le contenu principal de la page (barre latérale/sections) et le pied de page (par exemple 120px) qui devrait fonctionner en croix -navigateur.
De plus, s'il y a très peu de contenu sur une page, le pied de page doit toujours apparaître au moins en bas de l'écran (visible).
J'ai fait plusieurs tentatives en appliquant une classe "footer"
, incl. le suivant, mais la marge est toujours ignorée.
Ma structure HTML (simplifiée):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- ... -->
</head>
<body>
<nav>
<!-- ... -->
</nav>
<section id="sidebar">
<!-- ... -->
</section>
<section id="main">
<!-- ... -->
</section>
<footer class="footer">
<div>Some text</div>
</footer>
</body>
</html>
Mon CSS:
.footer {
color: #333;
font-size: 11px;
text-align: center;
vertical-align: bottom
}
.footer:before {
clear: both;
display: block;
height: 120px;
min-height: 120px;
}
Quelqu'un peut il m'aider avec ça ?
Aussi, si quelque chose devait être changé concernant mon code HTML, veuillez me le faire savoir également.
Merci d'avance, Mike
Cela devrait aider:
html, body {
height: 100%;
}
body {
margin:0px;
padding: 0px;
}
.wrap {
height: auto;
margin: 0 auto -80px; /* footer height + space */
min-height: 100%;
padding: 0 0 80px; /* footer height + space */
box-sizing: border-box;
overflow: auto;
}
.footer {
background-color: #111111;
color: #eeeeee;
border-top: 1px solid red;
height: 60px; /* footer height */
padding-top: 20px;
display: block;
margin-top: 20px; /* space between content and footer */
box-sizing: border-box;
position: relative;
width: 100%;
}
<body>
<div class="wrap">
<nav>
<!-- ... -->
</nav>
<section id="sidebar">
<!-- ... -->
</section>
<section id="main">
<!-- ... -->
</section>
</div>
<footer class="footer">
<div>Some text</div>
</footer>
</body>
Pourquoi utilisez-vous ": before"?
Votre css devrait ressembler à ceci:
.footer {
color: #333;
font-size: 11px;
text-align: center;
vertical-align: bottom;
margin-top: 120px;
}
Essayez cet exemple (fonctionne bien pour moi). Si cela ne fonctionne pas - assurez-vous que vous utilisez css reset.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- ... -->
</head>
<body>
<nav style="background:grey;height:100px;">
<!-- ... -->
</nav>
<section id="sidebar" style="background:green;height:100px;">
<!-- ... -->
</section>
<section id="main" style="background:red;height:100px;">
<!-- ... -->
</section>
<footer class="footer" style="background:blue;">
<div>Some text</div>
</footer>
</body>
</html>
<style>
.footer {
color: #333;
font-size: 11px;
text-align: center;
vertical-align: bottom;
margin-top: 120px;
}
</style>
Pour ajouter une marge entre le corps et le pied de page, ajoutez simplement ceci au style de la section de pied de page: padding:20px 0px 0px 0px;
Garder le pied de page au bas est plus compliqué. Essayez quelque chose comme ça pour les CSS:
html, body {
margin:0;
padding:0;
height:100%;
}
#wrapper{ /*create a div around whole html body
min-height:100%;
position:relative;
}
#main{
padding-bottom:100px; /* Height of the footer element */
}
#footer {
width:100%;
height:100px;
position:absolute;
bottom:0;
left:0;
color: #333;
}
il suffit de donner un style au corps avec une marge de 0px.
body{
margin: 0px;
}