CSS Push Div vers le bas de la page
S'il vous plaît regarder ce lien, je veux le contraire: Lorsque le contenu déborde sur les barres de défilement, je veux que mon pied soit toujours au complet en bas de la page, comme le débordement de pile.
J'ai un div avec id="footer"
et ce CSS:
#footer {
position: absolute;
bottom: 30px;
width: 100%;
}
Mais tout ce qu'il fait, c'est aller en bas de la fenêtre d'affichage et y rester même si vous faites défiler vers le bas, il n'est donc plus en bas.
Image:
Désolé si ce n'est pas clarifié, je ne veux pas qu'il soit corrigé, seulement pour qu'il soit au bas de tout le contenu.
css
positioning
css-position
footer
H Bellamy
la source
la source
position:fixed
, mais ce ne sera pas exactement la meilleure façon de le faireRéponses:
C'est précisément
position: fixed
pour cela que:Voici le violon: http://jsfiddle.net/uw8f9/
la source
fixed
pied de page, lorsqu'il y a suffisamment de contenu pour le faire. C'est assez bon pour moi. Bien sûr, je peux voir comment de très gros pieds de page comme ce qu'ils ont sur stackoverflow ne fonctionneraient pas bien avec l'fixed
approche, mais pour un pied de page basique, cette approche fonctionne bien à mon avis.Malheureusement, vous ne pouvez pas le faire sans ajouter un peu de HTML supplémentaire et avoir un élément CSS en s'appuyer sur un autre.
HTML
Vous devez d'abord envelopper votre
header
,footer
et#body
dans une#holder
div:CSS
Ensuite, définissez
height: 100%
surhtml
etbody
(corps réel, pas votre#body
div) pour vous assurer que vous pouvez définir la hauteur minimale en pourcentage sur les éléments enfants.Maintenant, réglez
min-height: 100%
sur le#holder
div afin qu'il remplisse le contenu de l'écran et utilisezposition: absolute
pour asseoir le pied de page au bas du#holder
div.Malheureusement, vous devez appliquer
padding-bottom
à la#body
div qui est de la même hauteur que lafooter
pour vous assurer que lefooter
ne se trouve pas au-dessus de tout contenu:Exemple de travail, corps court: http://jsfiddle.net/ELUGc/
Exemple de travail, corps long: http://jsfiddle.net/ELUGc/1/
la source
width
ou les deuxleft
etright
puis les valeurs sont définies surauto
et l'élément sera bouclé pour s'adapter à son contenu. Spécifierwidth: 100%
ouleft: 0
etright:0
garantit que l'élément positionné de façon absolue occupe toute la largeur de l'élément conteneurheight=100%
sur tous vos éléments contenants, y compris les<form>
éléments.Je viens de trouver une autre solution comme l'exemple ci-dessus. Écart par rapport à la réponse sélectionnée.
pour la mise en page html
Eh bien, cette méthode ne prend pas en charge l'ancien navigateur, mais il est acceptable que l'ancien navigateur fasse défiler 30 pixels pour afficher le pied de page
la source
Je me rends compte qu'il est dit de ne pas l'utiliser pour 'répondre à d'autres réponses' mais malheureusement je n'ai pas assez de représentant pour ajouter un commentaire sur la réponse appropriée (!) Mais ...
Si vous rencontrez des problèmes dans asp.net avec la réponse de 'My Head Hurts' - vous devez ajouter 'height: 100%' à la balise FORM générée principale ainsi qu'aux balises HTML et BODY pour que cela fonctionne.
la source
Vous n'avez pas fermé votre; après la position: absolue. Sinon, votre code ci-dessus aurait parfaitement fonctionné!
la source
Je commenterais si je le pouvais, mais je n'ai pas encore d'autorisations, donc je posterai un indice comme réponse, pour un comportement inattendu sur certains appareils Android:
Position: fixe ne fonctionne que dans Android 2.1 à 2.3 en utilisant la balise META suivante:
voir http://caniuse.com/#search=position
la source
Il s'agit d'une solution intuitive utilisant la commande de fenêtre qui définit simplement la hauteur minimale à la hauteur de la fenêtre moins la hauteur du pied de page.
la source
J'ai résolu un problème similaire en mettant tout mon contenu principal dans une balise div supplémentaire (id = "external"). J'ai ensuite déplacé la balise div avec id = "footer" en dehors de cette dernière balise div "externe". J'ai utilisé CSS pour spécifier la hauteur de "externe" et spécifié la largeur et la hauteur de "pied de page". J'ai également utilisé CSS pour spécifier la marge gauche et la marge droite du "pied de page" comme auto. Le résultat est que le pied de page se trouve fermement au bas de ma page et défile avec la page aussi (bien qu'il apparaisse toujours à l'intérieur du div "externe", mais heureusement à l'extérieur du div principal "content" qui semble étrange, mais c'est où je le veux).
la source
Je veux juste ajouter - la plupart des autres réponses ont bien fonctionné pour moi; cependant, il leur a fallu beaucoup de temps pour les faire fonctionner!
C'est parce que le réglage
height: 100%
ne prend que la hauteur de la division parent!Donc, si tout votre html (à l'intérieur du corps) ressemble à ceci:
Ensuite, ce sera bien:
... comme "support" ramassera sa hauteur directement à partir de "corps".
Félicitations à My Head Hurts, dont la réponse a été celle que j'ai fini par me mettre au travail!
Toutefois. Si votre html est plus imbriqué (parce que ce n'est qu'un élément de la page complète, ou qu'il se trouve dans une certaine colonne, etc.), vous devez vous assurer que chaque élément conteneur a également été
height: 100%
défini sur le div. Sinon, les informations sur la hauteur seront perdues entre "corps" et "support".Par exemple, ce qui suit, où j'ai ajouté la classe "pleine hauteur" à chaque div pour vous assurer que la hauteur descend jusqu'aux éléments d'en-tête / corps / pied de page:
Et n'oubliez pas de définir la hauteur sur la classe pleine hauteur dans le CSS:
Cela a résolu mes problèmes!
la source
si vous avez un pied de page à hauteur fixe (par exemple 712px), vous pouvez le faire avec js comme ceci:
la source
la source
utiliser la classe bootstrap à fond fixe
la source