J'essaie de montrer un pied de page au bas de mes pages. Et si la page est plus longue que 1 écran, j'aime que le pied de page ne s'affiche qu'après avoir défilé vers le bas. Je ne peux donc pas utiliser 'position: fixed', car alors cela s'affichera toujours.
J'essaie de copier l'exemple suivant: http://peterned.home.xs4all.nl/examples/csslayout1.html
Cependant, lorsque j'utilise ce qui suit, le pied de page affiche à mi-chemin ma longue page pour une raison quelconque.
position: absolute; bottom:0
J'ai à la fois des pages courtes et des pages longues et j'aimerais que ce soit au bas des deux.
Comment puis-je également conserver le pied de page en bas sur une longue page?
Violon
J'ai créé ces violons pour montrer le problème et tester le code. Veuillez publier un exemple de travail avec votre solution.
Mon pied de page css:
html,body {
margin:0;
padding:0;
height:100%; /* needed for container min-height */
}
.content {
position:relative; /* needed for footer positioning*/
margin:0 auto; /* center, not in IE5 */
height:auto !important; /* real browsers */
height:100%; /* IE6: treaded as min-height*/
min-height:100%; /* real browsers */
}
/* --- Footer --- */
.footerbar { position: absolute;
width: 100%;
bottom: 0;
color: white;
background-color: #202020;
font-size: 12px; }
a.nav-footer:link,
a.nav-footer:visited { color: white !important; }
a.nav-footer:hover,
a.nav-footer:focus { color: black !important;
background-color: #E7E7E7 !important; }
Je suggérerais l'approche du "pied de page collant". Voir le lien suivant:
Remplacer la hauteur par un débordement: auto; & donner au corps une position
html,body {
position:relative; <!--Also give it a position -->
margin:0;
padding:0;
overflow:auto; <!-- HERE -->
}
Positionnez le pied de page par rapport au corps
/* --- Footer --- */
.footerbar {
position: relative; <!-- HERE -->
width: 100%;
bottom: 0;
color: white;
background-color: #202020;
font-size: 12px;
}
Dans la mesure du possible, il est toujours préférable de positionner relativement vos éléments, en particulier vos éléments principaux, comme les pieds de page dans ce cas.
min-height:400px; <!-- Give this a real number like 400px
or whatever you want...dont leave it to 100% as -->
}
Nous luttons avec ce problème depuis un certain temps. Le div avec plusieurs div imbriqués couplé avec des hacks et des correctifs se transformait en cauchemar pour nous. Il y avait toujours des surprises qui nécessitaient plus de hacks et plus de correctifs. voici ce pour quoi nous nous sommes installés:
css:
html, body {
margin: 0px;
padding: 0px;
height: 100%;
color: #6f643a;
font-family: Arial;
font-size: 11pt;
}
form {
height: 100%;
}
corps:
<table style="z-index: 1; margin: 0px; left: 0px; top: 0px; overflow:auto" border="0" width="100%" height="100%" cellspacing="0" cellpadding="0">
<tr>
<td valign="top" align="center" >
contents goes here
</td>
</tr>
<tr>
<td valign="top" bgcolor="gray" align="center" style="padding:20px">
<font color="#FFFF00">copyright:Puppy</font>
footer goes here
</td>
</tr>
</table>
C'est tout ce dont vous avez besoin. - si vous utilisez asp.net, n'ignorez pas la hauteur du formulaire.
Nous avons maintenant une boîte flexible qui est très simple.
body {
height: 100vh;
display: flex;
flex-direction: column;
justify-content: space-between;
}
Remarque: nous ne devons contenir que deux div à l'intérieur du corps. Un pour le pied de page et un autre pour les objets de repos
Il y a un excellent tutoriel de pied de page ici .
La page de démonstration est ici .
La prémisse de base est que la page principale du corps est étirée à 100% de la page. Avec une hauteur minimale de 100% aussi.
Le pied de page reçoit alors les règles suivantes:
.footerbar {
clear: both;
position: relative;
z-index: 10;
height: 3em;
margin-top: -3em;
}
html,body {
margin:0;
padding:0;
height:100%;
}
.content {
padding:10px;
padding-bottom:80px; /* Height of the footer element */
}
.footerbar {
width:100%;
height:80px;
position:absolute;
bottom:0;
left:0;
}
Si IE7
<!--[if lt IE 7]>
<style type="text/css">
.content { height:100%; }
</style>
<![endif]-->