CSS Naciśnij Div na dole strony
Proszę spojrzeć na ten link, chcę odwrotnie: gdy zawartość przepełnia się do pasków przewijania, chcę, aby moja stopka zawsze znajdowała się na pełnym dole strony, na przykład Przepełnienie stosu.
Mam div z id="footer"
tym CSS:
#footer {
position: absolute;
bottom: 30px;
width: 100%;
}
Ale wszystko, co robi, to przejście do dolnej części rzutni i pozostaje tam, nawet jeśli przewiniesz w dół, więc nie będzie już na dole.
Wizerunek:
Przepraszam, jeśli nie wyjaśniono, nie chcę, aby to zostało naprawione, tylko aby znajdowało się na samym dole całej zawartości.
css
positioning
css-position
footer
H Bellamy
źródło
źródło
position:fixed
, choć nie będzie to najlepszy sposóbOdpowiedzi:
Właśnie to
position: fixed
zostało zaprojektowane do:Oto skrzypce: http://jsfiddle.net/uw8f9/
źródło
fixed
stopką, gdy jest wystarczająco dużo treści, aby to zrobić. To mi wystarczy. Oczywiście widzę, jak bardzo duże stopki lubią to, co mają na przepełnieniu stosu, nie działałyby dobrze z tymfixed
podejściem, ale dla podstawowej stopki o jednym wierszu takie podejście działa moim zdaniem.Niestety nie można tego zrobić bez dodania dodatkowego kodu HTML i polegania na tym, że jeden kawałek CSS polega na innym.
HTML
Najpierw trzeba owinąć
header
,footer
a#body
do#holder
div:CSS
Następnie ustaw
height: 100%
nahtml
ibody
(rzeczywiste ciało, a nie#body
div), aby upewnić się, że możesz ustawić minimalną wysokość jako procent elementów potomnych.Teraz ustaw
min-height: 100%
na#holder
div, aby wypełniał zawartość ekranu i użyj,position: absolute
aby usiąść stopkę na dole#holder
div.Niestety, musisz zastosować
padding-bottom
się do#body
div, który jest tej samej wysokości co,footer
aby upewnić się, żefooter
nie znajduje się powyżej żadnej treści:Przykład roboczy, krótkie ciało: http://jsfiddle.net/ELUGc/
Przykład roboczy, długi korpus: http://jsfiddle.net/ELUGc/1/
źródło
width
lub obu,left
aright
następnie wartości zostaną ustawione na,auto
a element zostanie zawinięty, aby pasował do jego zawartości. Określaniewidth: 100%
alboleft: 0
iright:0
zapewnia, że absolutnie umieszczony elementem zajmuje całą szerokość elementu konteneraheight=100%
na wszystkich swoich elementów zawierających, w tym<form>
elementów.Właśnie opracowałem inne rozwiązanie, ponieważ powyższy przykład ma dla mnie błąd (gdzieś błąd). Odmiana od wybranej odpowiedzi.
dla układu HTML
Cóż, w ten sposób nie obsługuje starej przeglądarki, ale jest dopuszczalne, aby stara przeglądarka przewijała 30 pikseli, aby wyświetlić stopkę
źródło
Zdaję sobie sprawę, że mówi się, aby nie używać tego do „odpowiadania na inne odpowiedzi”, ale niestety nie mam wystarczającej liczby przedstawicieli, aby dodać komentarz do odpowiedniej odpowiedzi (!), Ale ...
Jeśli masz problemy w asp.net z odpowiedzią z „My Head Hurts” - musisz dodać „wysokość: 100%” do generowanego głównego tagu FORM oraz tagów HTML i BODY, aby to zadziałało.
źródło
Nie zamknąłeś swojego; po pozycji: absolutna. W przeciwnym razie powyższy kod działałby idealnie!
źródło
Chciałbym skomentować, gdybym mógł, ale nie mam jeszcze uprawnień, więc opublikuję podpowiedź w odpowiedzi na nieoczekiwane zachowanie na niektórych urządzeniach z Androidem:
Pozycja: Naprawiono działa tylko w systemie Android 2.1 do 2.3 za pomocą następującego metatagu:
patrz http://caniuse.com/#search=position
źródło
Jest to intuicyjne rozwiązanie za pomocą polecenia rzutni, które ustawia minimalną wysokość do wysokości rzutni minus wysokość stopki.
źródło
Rozwiązałem podobny problem, umieszczając całą moją główną treść w dodatkowym znaczniku div (id = „outer”). Następnie przeniosłem tag div z id = "footer" poza ten ostatni "zewnętrzny" tag div. Użyłem CSS do określenia wysokości „zewnętrznego” i podałem szerokość i wysokość „stopki”. Użyłem również CSS, aby określić lewy margines i prawy margines „stopki” jako auto. Rezultat jest taki, że stopka jest mocno osadzona na dole mojej strony i przewija się wraz ze stroną (chociaż nadal pojawia się wewnątrz „zewnętrznego” div, ale na szczęście poza głównym div „content”, co wydaje się dziwne, ale jest gdzie tego chcę).
źródło
Chcę tylko dodać - większość pozostałych odpowiedzi działała dla mnie dobrze; zajęło im jednak dużo czasu!
Jest tak, ponieważ ustawienie
height: 100%
podnosi tylko wysokość div rodzica!Więc jeśli cały HTML (wewnątrz ciała) wygląda następująco:
Wtedy następujące będą w porządku:
... ponieważ „uchwyt” podnosi wysokość bezpośrednio z „ciała”.
Uznanie dla mojej głowy boli, której odpowiedzią była ta, w której znalazłem się w pracy!
Jednak. Jeśli twój HTML jest bardziej zagnieżdżony (ponieważ jest to tylko element całej strony lub jest w określonej kolumnie itp.), Musisz upewnić się, że każdy element zawiera
height: 100%
ustawiony element div. W przeciwnym razie informacje o wysokości zostaną utracone między „ciałem” a „uchwytem”.Np. Poniższe, w którym dodałem klasę „pełnej wysokości” do każdego elementu div, aby upewnić się, że wysokość sięga aż do naszych elementów nagłówka / treści / stopki:
I pamiętaj, aby ustawić wysokość w klasie pełnej wysokości w css:
To naprawiło moje problemy!
źródło
jeśli masz stopkę o stałej wysokości (na przykład 712px), możesz to zrobić za pomocą js:
źródło
źródło
użyj klasy bootstrap o stałym dnie
źródło