Ich verwende Bootstrap 3 für eine Site, die ich entwerfe.
Ich möchte eine Fußzeile wie diese haben. Stichprobe
Bitte beachten Sie, dass ich nicht möchte, dass es BEHOBEN wird, damit das Bootstrap-Navigationsfeld mit festem Boden mein Problem nicht löst. Ich möchte nur, dass es immer am Ende des Inhalts steht und auch reagiert.
Jeder Führer wird sehr geschätzt.
BEARBEITEN:
Entschuldigung, wenn ich nicht klar war. Was jetzt passiert ist, dass, wenn der Inhaltskörper nicht genug Inhalt hat. Meine Fußzeile bewegt sich nach oben und hinterlässt unten einen leeren Raum.
Das habe ich jetzt für meine Navigationsleiste
<nav class="navbar navbar-inverse navbar-bottom" style="padding:0 0 120px 0">
<div class="container">
<div class="row">
<div class="col-sm-4">
<h5 id='footer-header'> SITEMAP </h3>
<div class="col-sm-4" style="padding: 0 0 0 0px">
<p>News</p>
<p>contact</p>
</div>
<div class="col-sm-4" style="padding: 0 0 0 0px">
<p>FAQ</p>
<p>Privacy Policy</p>
</div>
</div>
<div class="col-sm-4">
<h5 id='footer-header'> xxxx </h3>
<p>yyyyyyyyyyyyy</p>
</div>
<div class="col-sm-4">
<h5 id='footer-header'> xxxxx </h3>
<p>uuuuuuuuuuuuuuu</p>
</div>
</div>
</div>
</nav>
CSS
.navbar-bottom {
min-height: 300px;
margin-top: 100px;
background-color: #28364f;
padding-top: 35px;
color:#FFFFFF;
}
html
css
twitter-bootstrap
footer
user3169403
quelle
quelle
Antworten:
Siehe das folgende Beispiel. Dadurch wird Ihre Fußzeile so positioniert, dass sie unten bleibt, wenn die Seite weniger Inhalt hat, und sich wie eine normale Fußzeile verhält, wenn die Seite mehr Inhalt hat.
CSS
HTML
UPDATE : Die neue Version von Bootstrap zeigt, wie Sie eine klebrige Fußzeile hinzufügen können, ohne einen Wrapper hinzuzufügen. Weitere Informationen finden Sie in der Antwort von Jboy Flaga.
quelle
Hier gibt es eine vereinfachte Lösung von Bootstrap (bei der Sie keine neue Klasse erstellen müssen): http://getbootstrap.com/examples/sticky-footer-navbar/
Wenn Sie diese Seite öffnen, klicken Sie mit der rechten Maustaste auf einen Browser und klicken Sie auf "Quelle anzeigen" und öffnen Sie die Datei sticky-footer-navbar.css ( http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar). CSS )
Sie können sehen, dass Sie nur dieses CSS benötigen
für diesen HTML
quelle
Verwenden Sie die Flexbox, wie Sie sie zur Verfügung haben. Die Lösung von Bootstrap angeboten 4 Jagd noch Überlappung Inhalt in ansprechendem Layout, zum Beispiel: es in der mobilen Ansicht brechen wird, komme ich über den meist netten Trick ist die Verwendung Flexbox Lösung Demo an hier gezeigt :( https://philipwalton.github.io / gelöst durch Flexbox / Demos / Sticky-Footer / ) Auf diese Weise müssen wir uns nicht mit Problemen mit fester Höhe befassen, die mittlerweile veraltet sind. Diese Lösung funktioniert für Bootstrap 3 und 4, je nachdem, was Sie verwenden.
quelle
UPDATE: Dies beantwortet die Frage nicht direkt in ihrer Gesamtheit, aber andere finden dies möglicherweise nützlich.
Dies ist der HTML-Code für Ihre reaktionsschnelle Fußzeile
Für das CSS
HINWEIS: Zum Zeitpunkt der Veröffentlichung dieser Frage wird die Fußzeile durch die obigen Codezeilen nicht unter den Seiteninhalt verschoben. Es verhindert jedoch, dass Ihre Fußzeile auf halber Höhe der Seite kriecht, wenn die Seite nur wenig Inhalt enthält. Ein Beispiel, bei dem die Fußzeile unter den Seiteninhalt verschoben wird, finden Sie hier http://getbootstrap.com/examples/sticky-footer/
quelle
padding-bottom
den Hauptinhaltscontainer auf die Höhe der Fußzeile einstellen . Und Sie müssen dies dynamisch auf Seitenload
undresize
Ereignissen sowie in der Fußzeile tunDOMSubtreeModified
.Für Leute, die immer noch Probleme haben und die beantwortete Lösung nicht ganz so funktioniert, wie Sie es möchten, ist hier die einfachste Lösung, die ich gefunden habe.
Wickeln Sie Ihren Hauptinhalt ein und weisen Sie ihm eine minimale Ansichtshöhe zu. Stellen Sie die 60 auf den Wert ein, den Ihr Stil benötigt.
Das ist es und es funktioniert ziemlich gut.
quelle
Galen Gidman hat eine wirklich gute Lösung für das Problem einer reaktionsschnellen, klebrigen Fußzeile ohne feste Höhe veröffentlicht. Seine vollständige Lösung finden Sie in seinem Blog: http://galengidman.com/2014/03/25/responsive-flexible-height-sticky-footers-in-css/
HTML
CSS
quelle
Scrollen Sie für eine reine CSS-Lösung nach dem zweiten
<hr>
. Die erste ist die erste Antwort (im Jahr 2016 zurückgegeben)Der Hauptfehler der oben genannten Lösungen besteht darin, dass sie eine feste Höhe für die Fußzeile haben.
Und das ist in der realen Welt, in der Menschen eine Unmenge von Geräten verwenden und die schlechte Angewohnheit haben, sie zu drehen, wenn Sie es am wenigsten erwarten, und ** Poof! ** Da geht dein Seiteninhalt hinter die Fußzeile!
In der realen Welt benötigen Sie eine Funktion, die die Höhe der Fußzeile berechnet und den Seiteninhalt dynamisch an
padding-bottom
diese Höhe anpasst . Und Sie müssen diese winzige Funktion sowohl auf Seitenload
undresize
Ereignissen als auch auf Fußzeilen ausführenDOMSubtreeModified
(nur für den Fall, dass Ihre Fußzeile dynamisch asynchron aktualisiert wird oder animierte Elemente enthält, deren Größe sich bei der Interaktion ändert).Hier ist ein Proof of Concept mit jQuery
v3.0.0
und Bootstrapv4-alpha
, aber es gibt keinen Grund, warum es nicht mit niedrigeren Versionen funktionieren sollte.Code-Snippet anzeigen
Anfangs habe ich diese Lösung hier veröffentlicht, aber mir wurde klar, dass sie möglicherweise mehr Menschen hilft, wenn sie unter dieser Frage veröffentlicht wird.
Hinweis: Ich habe das absichtlich verpackt
$([selector]).accomodateFooter()
als jQuery - Plugin, so dass es auf jedem DOM - Element ausgeführt werden können, wie in den meisten Layouts ist es nicht das$('body')
ist ,bottom-padding
dass die Bedürfnisse eingestellt, aber einige Seite Wrapperelement mitposition:relative
( in der Regel die unmittelbare Mutter derfooter
) .Später bearbeiten (3+ Jahre nach der ersten Antwort):
Ab diesem Zeitpunkt halte ich die Verwendung von JavaScript für die Positionierung einer dynamischen Inhaltsfußzeile am Ende der Seite nicht mehr für akzeptabel. Dies kann allein mit CSS erreicht werden, mit Flexbox, blitzschnell und browserübergreifend.
Hier ist es:
Code-Snippet anzeigen
quelle
Diese Methode verwendet minimales Markup. Legen Sie einfach Ihren gesamten Inhalt in einen .wrapper, dessen Polsterung unten und negativer Rand unten der Fußzeilenhöhe entsprechen (in meinem Beispiel 100px).
quelle
Oder dieses
quelle
Für Bootstrap:
quelle
navbar-fixed-bottom
NICHT das Problem löst.Keine dieser Lösungen funktionierte genau für mich, da ich in meiner Fußzeile die Navbar-Inverse-Klasse verwendet habe. Aber ich habe eine Lösung bekommen, die funktioniert und Javascript-frei ist. Verwendet Chrome, um Medienabfragen zu erstellen. Die Höhe der Fußzeile ändert sich, wenn sich die Größe des Bildschirms ändert. Sie müssen dies berücksichtigen und entsprechend anpassen. Ihr Fußzeileninhalt (ich setze id = "footer", um meinen Inhalt zu definieren) sollte postion = absolute und bottom = 0 verwenden, um ihn unten zu halten. Auch Breite: 100%. Hier ist mein CSS mit Medienabfragen. Sie müssen die minimale und maximale Breite anpassen und einige Elemente hinzufügen oder entfernen:
quelle