CSS Tekan Div ke bagian bawah halaman
Silahkan lihat di link itu, saya ingin sebaliknya: Ketika konten meluap ke scrollbars, saya ingin footer saya untuk selalu di lengkap bawah halaman, seperti Stack Overflow.
Saya memiliki div dengan id="footer"
dan CSS ini:
#footer {
position: absolute;
bottom: 30px;
width: 100%;
}
Tapi yang dilakukannya hanyalah pergi ke bagian bawah viewport, dan tetap di sana bahkan jika Anda menggulir ke bawah, sehingga tidak lagi di bagian bawah.
Gambar:
Maaf jika tidak diklarifikasi, saya tidak ingin itu diperbaiki, hanya untuk itu berada di bagian bawah sebenarnya dari semua konten.
css
positioning
css-position
footer
H Bellamy
sumber
sumber
position:fixed
, meskipun itu tidak akan persis cara terbaik untuk melakukannyaJawaban:
Inilah tepatnya yang
position: fixed
dirancang untuk:Ini biola: http://jsfiddle.net/uw8f9/
sumber
fixed
footer, ketika ada cukup konten untuk melakukannya. Itu cukup baik untukku. Tentu saja, saya dapat melihat bagaimana footer yang sangat besar seperti apa yang mereka miliki di stackoverflow tidak akan bekerja dengan baik denganfixed
pendekatan tersebut, tetapi untuk footer satu baris dasar pendekatan ini bekerja dengan baik menurut saya.Sayangnya Anda tidak dapat melakukan ini tanpa menambahkan sedikit HTML tambahan dan mengandalkan CSS.
HTML
Pertama, Anda perlu membungkus Anda
header
,footer
dan#body
menjadi#holder
div:CSS
Kemudian atur
height: 100%
kehtml
danbody
(badan aktual, bukan#body
div Anda ) untuk memastikan Anda dapat mengatur tinggi minimum sebagai persentase pada elemen anak.Sekarang mengatur
min-height: 100%
pada#holder
div sehingga memenuhi isi layar dan gunakanposition: absolute
untuk duduk footer di bagian bawah#holder
div.Sayangnya, Anda harus menerapkan
padding-bottom
ke#body
div yang tingginya sama denganfooter
untuk memastikan bahwafooter
tidak duduk di atas konten apa pun:Contoh kerja, tubuh pendek: http://jsfiddle.net/ELUGc/
Contoh kerja, tubuh panjang: http://jsfiddle.net/ELUGc/1/
sumber
width
atau keduanyaleft
danright
kemudian nilai-nilai diatur keauto
dan elemen akan membungkus agar sesuai dengan kontennya. Menentukanwidth: 100%
atauleft: 0
danright:0
memastikan bahwa elemen benar-benar diposisikan mengambil lebar penuh dari elemen kontainerheight=100%
pada semua elemen yang mengandung Anda, termasuk<form>
elemen.Hanya bekerja untuk solusi lain seperti contoh di atas memiliki bug (kesalahan tempat) untuk saya. Variasi dari jawaban yang dipilih.
untuk tata letak html
Nah cara ini tidak mendukung browser lama namun itu dapat diterima untuk browser lama untuk scrolldown 30px untuk melihat catatan kaki
sumber
Saya menyadari itu mengatakan tidak menggunakan ini untuk 'menanggapi jawaban lain' tapi sayangnya saya tidak punya cukup tenaga untuk menambahkan komentar ke jawaban yang sesuai (!) Tapi ...
Jika Anda mengalami masalah di asp.net dengan jawaban dari 'My Head Hurts' - Anda perlu menambahkan 'tinggi: 100%' ke tag FORM yang dihasilkan utama serta tag HTML dan BODY agar ini berfungsi.
sumber
Anda tidak menutup Anda; setelah posisi: absolut. Kalau tidak, kode Anda di atas akan bekerja dengan sempurna!
sumber
Saya akan berkomentar jika saya bisa, tetapi saya belum memiliki izin, jadi saya akan memposting petunjuk sebagai jawaban, untuk perilaku tak terduga pada beberapa perangkat android:
Posisi: Tetap hanya berfungsi di Android 2.1 hingga 2.3 dengan menggunakan tag meta berikut:
lihat http://caniuse.com/#search=position
sumber
Ini adalah solusi intuitif menggunakan perintah viewport yang hanya mengatur tinggi minimum ke tinggi viewport dikurangi tinggi footer.
sumber
Saya telah memecahkan masalah serupa dengan meletakkan semua konten utama saya di dalam tag div tambahan (id = "luar"). Saya kemudian memindahkan tag div dengan id = "footer" di luar tag div "luar" terakhir ini. Saya telah menggunakan CSS untuk menentukan tinggi "luar" dan menentukan lebar dan tinggi "footer". Saya juga menggunakan CSS untuk menentukan margin-kiri dan margin-kanan "footer" sebagai otomatis. Hasilnya adalah bahwa footer duduk dengan kuat di bagian bawah halaman saya dan menggulir halaman juga (walaupun, itu masih muncul di dalam div "luar", tetapi dengan senang hati di luar div "konten" utama. Yang tampak aneh, tapi itu di mana saya menginginkannya).
sumber
Saya hanya ingin menambahkan - sebagian besar jawaban lain bekerja dengan baik untuk saya; namun, butuh waktu lama untuk membuatnya bekerja!
Ini karena pengaturan
height: 100%
hanya mengambil tinggi div orangtua!Jadi jika seluruh html Anda (di dalam tubuh) terlihat seperti berikut:
Maka yang berikut ini akan baik-baik saja:
... sebagai "pemegang" akan mengambil tinggi itu langsung dari "tubuh".
Kudos to My Head Hurts, yang jawabannya adalah aku akhirnya mulai bekerja!
Namun. Jika html Anda lebih bersarang (karena itu hanya elemen dari halaman penuh, atau itu dalam kolom tertentu, dll) maka Anda perlu memastikan setiap elemen yang mengandung juga telah
height: 100%
ditetapkan pada div. Kalau tidak, informasi tentang ketinggian akan hilang antara "tubuh" dan "pemegang".Misalnya yang berikut, di mana saya telah menambahkan kelas "tinggi penuh" ke setiap div untuk memastikan ketinggiannya turun ke elemen header / body / footer kami:
Dan ingat untuk mengatur ketinggian pada kelas tinggi penuh di css:
Itu memperbaiki masalah saya!
sumber
jika Anda memiliki footer tinggi tetap (misalnya 712px) Anda dapat melakukan ini dengan js seperti:
sumber
sumber
gunakan kelas bootstrap tetap-bawah
sumber