Je connais généralement la technique de vidage d'un pied de page à l'aide de CSS.
Mais j'ai du mal à faire fonctionner cette approche pour le bootstrap Twitter, probablement en raison du fait que le bootstrap Twitter est de nature réactive. En utilisant le bootstrap Twitter, je ne parviens pas à faire remonter le pied de page vers le bas de la page en utilisant l'approche décrite dans le blog ci-dessus.
css
twitter-bootstrap
footer
Calvin Cheng
la source
la source
Réponses:
J'ai trouvé que les extraits ici fonctionnent très bien pour le bootstrap
Html:
CSS:
la source
Ceci est maintenant inclus avec Bootstrap 2.2.1.
Bootstrap 3.x
Utilisez le composant navbar et ajoutez la
.navbar-fixed-bottom
classe:Bootstrap 4.x
N'oubliez pas d'ajouter
body { padding-bottom: 70px; }
ou sinon le contenu de la page peut être couvert.Documents: http://getbootstrap.com/components/#navbar-fixed-bottom
la source
navbar-static-bottom
.Un exemple de travail pour Twitter bootstrap NOT STICKY FOOTER
Version qui est toujours mise à jour au cas où l'utilisateur ouvre devtools ou redimensionne la fenêtre.
Vous avez besoin d'au moins un élément avec un
#footer
Si vous ne voulez pas que la barre de défilement soit adaptée à l'écran, modifiez simplement la valeur de 10 à 0.
La barre de défilement s'affichera si le contenu ne convient pas à l'écran.
la source
$('#footer').height();
par$('#footer').outerHeight();
$(window).resize(function() {//main code goes here});
et appelez-le$(window).resize();
pour le définir lors du chargement de la page.Voici comment implémenter cela à partir de la page officielle:
http://getbootstrap.com/2.3.2/examples/sticky-footer.html
Je viens de le tester en ce moment et ça MARCHE BIEN! :)
HTML
Le code CSS pertinent est le suivant:
la source
Pour Sticky Footer, nous en utilisons deux
DIV's
dans le HTML pour un effet basique de bas de page . Écrivez comme ceci:HTML
CSS
la source
Exemple officiel beaucoup plus simple: http://getbootstrap.com/examples/sticky-footer-navbar/
la source
Eh bien, j'ai trouvé un mélange de
navbar-inner
etnavbar-fixed-bottom
Cela semble bon et fonctionne pour moi
Voir l'exemple dans Fiddle
la source
Dans la dernière version de bootstrap 4.3, cela peut être fait en utilisant
.fixed-bottom
class.Voici comment je l'utilise avec le pied de page:
Vous pouvez trouver plus d'informations dans la documentation de position ici .
la source
La réponse de HenryW est bonne, même si j'avais besoin de quelques ajustements pour que cela fonctionne comme je le voulais. En particulier, ce qui suit gère également:
Voici ce qui a fonctionné pour moi avec ces ajustements:
HTML:
CSS:
JavaScript:
la source
Cela a parfaitement fonctionné pour moi.
Ajoutez cette classe navbar-fixed-bottom à votre pied de page.
Je l'ai utilisé comme ceci:
Et il se fixe en bas sur toute la largeur.
Edit: Cela mettra le pied de page toujours visible, c'est quelque chose que vous devez prendre en considération.
la source
Vous devez envelopper votre
.container-fluid
div pour que votre pied de page collant fonctionne, vous manquez également certaines propriétés de votre.wrapper
classe. Essaye ça:Supprimez le
padding-top:70px
de votrebody
balise et incluez-le à la.container-fluid
place, comme ceci:Nous devons le faire parce que pousser
body
vers le bas pour accueillir la barre de navigation finit par pousser le pied de page un peu plus loin (70 pixels plus loin) après la fenêtre, nous obtenons donc une barre de défilement. Nous obtenons de meilleurs résultats en poussant le.container-fluid
div à la place.Ensuite, nous devons supprimer la
.wrapper
classe en dehors de votre.container-fluid
div et envelopper votre#main
div avec, comme ceci:Votre pied de page doit bien sûr être hors du
.wrapper
div, alors retirez-le du div `.wrapper et placez-le à l'extérieur, comme ceci:Après que tout soit fait, poussez correctement votre pied de page plus près de votre
.wrapper
classe en utilisant une marge négative, comme ceci:Et cela devrait fonctionner, mais vous devrez probablement modifier quelques autres choses pour le faire fonctionner lorsque l'écran est redimensionné, comme réinitialiser la hauteur de la
.wrapper
classe, comme ceci:la source
C'est la bonne façon de le faire avec Twitter Bootstrap et la nouvelle classe navbar-fixed-bottom: (vous n'avez aucune idée du temps que j'ai passé à chercher cela)
CSS:
HTML:
la source
Utilisez les utilitaires flex intégrés à Bootstrap 4! Voici ce que j'ai trouvé en utilisant principalement des utilitaires Bootstrap 4.
.d-flex
pour faire de la div principale un conteneur flexible.flex-column
sur la div principale pour organiser vos éléments flexibles dans une colonnemin-height: 100vh
à la div principale, soit avec un attribut de style ou dans votre CSS, pour remplir la fenêtre verticalement.flex-grow-1
sur le conteneur, élément pour que le conteneur de contenu principal occupe tout l'espace restant dans la hauteur de la fenêtre.la source
min-height: 100vh
lamin-vh-100
classe de Bootstrap, vous pouvez utiliser.Utilisez le composant navbar et ajoutez la classe .navbar-fixed-bottom:
ajouter du corps
la source
pour gérer les dispositions de contrainte de largeur, utilisez ce qui suit pour ne pas obtenir de coins arrondis et pour que votre barre de navigation affleure les côtés de l'application
alors vous pouvez utiliser css pour remplacer les classes de bootstrap pour ajuster la hauteur, la police et la couleur
la source
Vous pouvez utiliser jQuery pour gérer cela:
la source
Le seul qui a fonctionné pour moi!:
la source
La technique la plus simple consiste probablement à utiliser Bootstrap
navbar-static-bottom
en conjonction avec la définition du conteneur principal div avecheight: 100vh
(nouveau pourcentage de port de vue CSS3 ). Cela videra le pied de page vers le bas.la source
Testé avec
Bootstrap 3.6.6
.HTML
CSS
la source
La hauteur du pied de page correspond à la taille du retrait inférieur de l'élément enveloppant.
la source
Voici une solution pour la dernière version de Bootstrap (4.3 au moment de la rédaction) utilisant Flexbox.
HTML:
CSS:
Et un exemple de codepen: https://codepen.io/tillytoby/pen/QPdomR
la source
Selon l' exemple Bootstrap 4.3 , au cas où vous perdriez votre raison comme je l'ai fait, voici comment cela fonctionne réellement:
height: 100%
(h-100
classe)display: flex
(d-flex
classe)margin-top: auto
(mt-auto
classe)Le problème est que dans les frameworks frontaux modernes, nous avons souvent des wrappers supplémentaires autour de ces éléments.
Par exemple, dans mon cas, avec Angular, j'ai composé la vue à partir d'une racine d'application distincte, d'un composant d'application principal et d'un composant de pied de page - qui ont tous ajouté leur élément personnalisé au DOM.
Donc, pour le faire fonctionner, j'ai dû ajouter des classes à ces éléments de wrapper: un supplémentaire
h-100
, en déplaçant led-flex
niveau inférieur et en déplaçant lemt-auto
niveau supérieur du pied de page (donc en fait ce n'est plus sur la classe de pied de page, mais sur ma<app-footer>
coutume élément).la source
class="h-100"
le<html>
tag.Utilisez ce morceau de code dans le bootstrap ça marche
la source
Solution Bootstrap v4 +
Voici une solution qui ne nécessite pas de repenser la structure HTML ou toute astuce CSS supplémentaire impliquant un remplissage:
Notez que cette solution permet des pieds de page avec des hauteurs flexibles, ce qui est particulièrement utile lors de la conception de pages pour plusieurs tailles d'écran avec un habillage de contenu une fois réduit.
Pourquoi cela fonctionne
style="height:100%;"
fait en<html>
sorte que la balise occupe tout l'espace du document.d-flex
ensembles de classesdisplay:flex
à notre<body>
balise.flex-column
ensembles de classesflex-direction:column
à notre<body>
balise. Ses enfants (<header>
,<main>
,<footer>
et tout autre enfant direct) sont maintenant alignés verticalement.h-100
ensembles de classeheight:100%
à notre<body>
balise, ce qui signifie qu'elle couvrira la totalité de l'écran verticalement.flex-grow-1
définit la classeflex-grow:1
à notre<main>
, lui demandant effectivement de remplir tout espace vertical restant, ce qui correspond à la hauteur verticale de 100% que nous avons définie auparavant sur notre<body>
balise.Démonstration de travail ici: https://codepen.io/maxencemaire/pen/VwvyRQB
Voir https://css-tricks.com/snippets/css/a-guide-to-flexbox/ pour plus d'informations sur flexbox.
la source
h-100
la classe ne fonctionne pas correctement, il est préférable de l'utilisermin-vh-100
.h-100
classe dépend toujours de la hauteur des éléments parents et peut ne pas fonctionner correctement dans certains cas. Puisque nous voulons un pied de page au bas de la fenêtre, il serait judicieux d'utiliser la hauteur de la fenêtre.min-width
. C'est pourquoi laHTML
balise a unheight
100% dans le code. L'exemple fonctionne et je ne vois pas pourquoi il ne donnerait pas la prise en charge multi-navigateur pour laheight
propriété CSS , qui est finalement ce que l'extrait Bootstrap traduit.HTML
balise. Dans mon cas, votre solution n'a pas fonctionné car je ne préfère pas utiliser le style dans laHTML
balise. Et je ne veux pas que labody
balise dépend d'un autre parent mais de la fenêtre d'affichage. Vous n'avez pas à mettrestyle="height:100%;"
eth-100
en même temps. Mettremin-vh-100
au corps fait simplement le travail et moins de code.Il semble que la
height:100%
«chaîne» soit rompuediv#main
. Essayez d'y ajouterheight:100%
et cela pourrait vous rapprocher de votre objectif.la source
Vous trouverez ici l'approche en HAML ( http://haml.info ) avec navbar en haut et pied de page en bas de page:
la source
Rester simple.
Vous devrez peut-être également décaler la hauteur du pied de page en ajoutant un
margin-bottom
équivalent à la hauteur du pied de page dans lebody
.la source
Voici un exemple d'utilisation de css3:
CSS:
HTML:
violon
la source
Voici comment le bootstrap le fait:
http://getbootstrap.com/2.3.2/examples/sticky-footer.html
Utilisez simplement la page source et vous devriez pouvoir voir. N'oubliez pas
<div id="wrap">
le haut.la source
une autre solution possible, simplement en utilisant des requêtes multimédias
la source