Ovaj je post dostupan i na korejskom jeziku .
Podnožje je zadnji element na stranici. Najmanje je na dnu okvira za prikaz ili niže ako je sadržaj stranice viši od okvira za prikaz. Jednostavno, zar ne? ?
Pri radu s dinamičkim sadržajem koji uključuje podnožje, ponekad se dogodi problem kada sadržaj na stranici nije dovoljan da ga popuni. Podnožje, umjesto da ostane na dnu stranice na mjestu na kojem bismo željeli da ostane, podiže se i ostavlja prazan prostor ispod sebe.
Za brzo rješenje možete podnožje apsolutno postaviti na dno stranice. Ali ovo dolazi sa svojom lošom stranom. Ako sadržaj postane veći od okvira prikaza, podnožje će ostati 'zaglavljeno' na dnu okvira prikaza, htjeli mi to ili ne.
To pokazuje ponašanje koje ne želimo i koje želimo:

Pogledajmo pristup kako bismo to postigli.
Dobivanje podnožja pod kontrolu
index.html
:
main.css
:
#page-container { position: relative; min-height: 100vh; } #content-wrap { padding-bottom: 2.5rem; /* Footer height */ } #footer { position: absolute; bottom: 0; width: 100%; height: 2.5rem; /* Footer height */ }
Pa što to radi?
page-container
Obilazi sve na stranici, i postavlja svoje minimalne visine do 100% visine viewport (vh
). Takvi kakvi jesurelative
, njegovi se podređeni elementi moguabsolute
kasnije postaviti s položajem koji se temelji na njemu.content-wrap
Ima dno padding koji je visina podnožja, osiguravajući da je dovoljno točno mjesta još ima za podnožje unutar spremnika su oboje u. Omatanjediv
ovdje se koristi da bi sadržavati sve ostale sadržaj stranice.- Postavljeno
footer
je naabsolute
, držeći sebottom: 0
onogpage-container
što je unutar. To je važno, jer nijeabsolute
do okvira za prikaz, ali će se pomaknuti prema dolje akopage-container
je viši od okvira za prikaz. Kao što je rečeno, u njemu se koristi njegova visina, proizvoljno postavljena2.5rem
ovdjecontent-wrap
.
Eto ti ga. Vaše podnožje sada ostaje tamo gdje biste očekivali!
Posljednji dodir
Naravno, ovo je CSS, pa ne bi bio potpun bez nekih UX razmatranja koja se odnose na mobilne uređaje i alternativnog pristupa koji se koristi min-height: 100%
umjesto 100vh
. Ali ovo ima svoje nedostatke.
Flexbox (s flex-grow) ili Grid također se mogu koristiti, a oboje su vrlo moćni.
Koju ćete metodu odabrati ovisi o vama i specifičnostima vašeg dizajna. Nadamo se da vam gornji primjer i poveznice pomažu uštedjeti vrijeme u donošenju odluke i njezinoj primjeni.
Hvala na čitanju. Evo nekoliko drugih stvari koje sam nedavno napisao:
- Vodič za početnike za Amazonovu uslugu elastičnih kontejnera
- Testiranje reakcije s Jest i enzimom