Używam Bootstrap 3 w przypadku witryny, którą projektuję.
Chcę mieć stopkę taką jak ta próbka. Próba
Pamiętaj, że nie chcę, aby to NAPRAWIONE, więc bootstrap navbar-fixed-bottom nie rozwiązuje mojego problemu. Chcę tylko, aby zawsze znajdował się na dole treści i był responsywny.
Każdy przewodnik będzie bardzo mile widziany.
EDYTOWAĆ:
Przepraszam, jeśli nie było jasne. Teraz dzieje się tak, że treść nie ma wystarczającej ilości treści. Moja stopka przesuwa się w górę, a następnie zostawia puste miejsce na dole.
Oto, co mam teraz dla mojego paska nawigacyjnego
<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
źródło
źródło
Odpowiedzi:
Zobacz poniższy przykład. Spowoduje to umieszczenie stopki na dole, jeśli strona ma mniej treści i będzie zachowywać się jak normalna stopka, jeśli strona ma więcej treści.
CSS
HTML
AKTUALIZACJA : Nowa wersja Bootstrap pokazuje, jak dodać lepką stopkę bez dodawania otoki. Aby uzyskać więcej informacji, zobacz odpowiedź Jboy Flaga.
źródło
Jest tutaj uproszczone rozwiązanie z bootstrap (gdzie nie musisz tworzyć nowej klasy): http://getbootstrap.com/examples/sticky-footer-navbar/
Po otwarciu tej strony kliknij prawym przyciskiem myszy przeglądarkę i „Wyświetl źródło”, a następnie otwórz plik sticky-footer-navbar.css ( http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar. css )
widać, że potrzebujesz tylko tego CSS
dla tego HTML
źródło
użyj flexbox, ponieważ możesz go używać do swojej dyspozycji. Rozwiązanie oferowane przez bootstrap 4 wciąż poluje na nakładające się treści w responsywnym układzie, np .: będzie się zepsuć w widoku mobilnym, natknąłem się na najbardziej zgrabną sztuczkę, aby skorzystać z demonstracji rozwiązania flexbox pokazanej tutaj :( https://philipwalton.github.io / rozwiązany po schematu flexbox / demos / lepkiej stopki / ) w ten sposób, że nie mamy do czynienia ze stałym kwestii wysokości, która jest rozwiązaniem przestarzałym już ... to rozwiązanie działa na bootstrap 3 i 4 w zależności od tego używasz.
źródło
AKTUALIZACJA: To nie odpowiada bezpośrednio na pytanie w całości, ale inni mogą uznać to za przydatne.
To jest kod HTML dla Twojej elastycznej stopki
Dla CSS
UWAGA: w momencie wysyłania tego pytania powyższe wiersze kodu nie powodują wypychania stopki poniżej zawartości strony; ale zapobiegnie indeksowaniu stopki w połowie strony w górę, gdy na stronie jest mało treści. Aby zobaczyć przykład, który powoduje przesunięcie stopki pod zawartość strony, zajrzyj tutaj http://getbootstrap.com/examples/sticky-footer/
źródło
padding-bottom
główny kontener zawartości równy wysokości stopki. I musisz to robić dynamicznie na stronieload
iresize
wydarzeniach, a także w stopceDOMSubtreeModified
.Dla osób, które wciąż mają problemy, a rozwiązanie, na które udzielono odpowiedzi, nie działa tak, jak chcesz, oto najprostsze rozwiązanie, jakie znalazłem.
Owiń główną treść i przypisz jej minimalną wysokość widoku. Dostosuj 60 do dowolnej wartości, jakiej potrzebuje Twój styl.
To wszystko i działa całkiem nieźle.
źródło
Galen Gidman opublikował naprawdę dobre rozwiązanie problemu elastycznej stopki, która nie ma stałej wysokości. Pełne rozwiązanie można znaleźć na jego blogu: http://galengidman.com/2014/03/25/responsive-f flexible-height-sticky-footers- in- css/
HTML
CSS
źródło
Aby uzyskać czyste rozwiązanie CSS, przewiń po drugim
<hr>
. Pierwsza to wstępna odpowiedź (udzielona w 2016 roku)Główną wadą powyższych rozwiązań jest to, że mają one stałą wysokość stopki.
I to po prostu nie wystarcza w prawdziwym świecie, w którym ludzie używają miliardów urządzeń i mają zły nawyk obracania ich, kiedy najmniej się tego spodziewasz i ** Poof! ** zawartość Twojej strony znajduje się za stopką!
W prawdziwym świecie potrzebujesz funkcji, która oblicza wysokość stopki i dynamicznie dostosowuje zawartość strony
padding-bottom
do tej wysokości. I musisz uruchomić tę małą funkcję na stronieload
iresize
zdarzeniach, a także na stopceDOMSubtreeModified
(na wypadek gdyby Twoja stopka była dynamicznie aktualizowana asynchronicznie lub zawierała animowane elementy, które zmieniają rozmiar podczas interakcji).Oto dowód słuszności koncepcji przy użyciu jQuery
v3.0.0
i Bootstrapv4-alpha
, ale nie ma powodu, dla którego nie miałby działać na niższych wersjach każdego z nich.Pokaż fragment kodu
Początkowo zamieściłem to rozwiązanie tutaj, ale zdałem sobie sprawę, że może pomóc większej liczbie osób, jeśli zostanie wysłane pod to pytanie.
Uwaga: Mam celowo owinął
$([selector]).accomodateFooter()
jako plugin jQuery, więc to może być uruchamiany na dowolnym elemencie DOM, jak w większości układów nie jest to$('body')
„sbottom-padding
, że potrzeby regulacji, ale niektóre strona wrapper elementu zposition:relative
(zazwyczaj natychmiastowe dominującąfooter
) .Późniejsza edycja (ponad 3 lata po pierwszej odpowiedzi):
W tym momencie nie uważam już za dopuszczalne używanie JavaScript do pozycjonowania dynamicznej stopki treści na dole strony. Można to osiągnąć za pomocą samego CSS, używając flexboksa, błyskawicznego działania w różnych przeglądarkach.
Oto ona:
Pokaż fragment kodu
źródło
Ta metoda wykorzystuje minimalne znaczniki. Po prostu umieść całą swoją zawartość w .wrapper, który ma dopełnienie-dół i ujemny dół marginesu równe wysokości stopki (w moim przykładzie 100px).
źródło
Albo to
źródło
W przypadku Bootstrap:
źródło
navbar-fixed-bottom
to NIE rozwiązuje problem.Żadne z tych rozwiązań nie działało idealnie, ponieważ w stopce użyłem klasy navbar-inverse. Ale otrzymałem rozwiązanie, które działało i nie zawierało Javascript. Używał przeglądarki Chrome do tworzenia zapytań o media. Wysokość stopki zmienia się wraz ze zmianą rozmiaru ekranu, więc musisz zwrócić na to uwagę i odpowiednio dostosować. Treść stopki (ustawiłem id = "footer", aby zdefiniować moją treść) powinna używać postion = bezwzględna i bottom = 0, aby pozostawić ją na dole. Również szerokość: 100%. Oto mój CSS z zapytaniami o media. Będziesz musiał dostosować min-width i max-width oraz dodać lub usunąć niektóre elementy:
źródło
Oto, co zadziałało u mnie przy użyciu Flexbox :
Źródło: https://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/
źródło