Lampirkan footer ke bagian bawah halaman WordPress. Bagaimana cara memasang footer atau footer di bagian bawah halaman web dengan CSS? Kami memasukkan spacer dan melawan Internet Explorer




  • tutorial

Setiap orang yang terbiasa dengan halaman website berdesain lengkap lebih menyukai tampilan sesuatu yang “dipaku” (lengket) di bagian bawah footer halaman. Namun ada dua masalah di Internet: kolom input yang tidak tumbuh ke bawah dan footer yang tidak dipaku (ke bagian bawah jendela). Misalnya, ketika kita membuka halaman yang tingginya pendek, langsung terlihat bahwa informasi yang dimaksudkan di bagian bawah jendela tampilan menempel pada konten dan terletak di suatu tempat di tengah, atau bahkan di atas jendela. jendela, ketika bagian bawah kosong.

Jadi, bukannya .
Panduan untuk perancang tata letak pemula ini akan menunjukkan cara membuat footer yang "dipaku" dalam 45 menit, memperbaiki kekurangan bahkan dari publikasi terkemuka seperti Habr, dan bersaing dengannya dalam kualitas pelaksanaan proyek Anda yang menjanjikan.

Mari kita lihat penerapan salah satu jenis footer yang dipaku, yang diambil dari jaringan, dan mencoba memahami apa yang terjadi. css-tricks.com/snippets/css/sticky-footer
CSS:
* ( margin:0; padding:0; ) html, body, #wrap ( tinggi: 100%; ) body > #wrap (height: auto; min-height: 100%;) #main ( padding-bottom: 150px; ) /* harus sama tingginya dengan footer */ #footer ( position: relative; margin-top: -150px; /* nilai negatif dari tinggi footer */ height: 150px; clear:both;) /* CLEAR FIX* / .clearfix:after (konten: "."; tampilan: blok; tinggi: 0; jelas: keduanya; visibilitas: tersembunyi;) .clearfix (tampilan: inline-block;) /* Bersembunyi dari IE-mac \*/ * html .clearfix (tinggi: 1%;).clearfix (tampilan: blok;) /* Akhiri sembunyikan dari IE-mac */
HTML:

Tidak mungkin semua orang, bahkan mereka yang mengetahui CSS, melihat kode ini, akan memahami prinsip-prinsipnya dan dengan percaya diri mengedit proyek yang kompleks. Setiap langkah ke samping akan menimbulkan efek samping. Pembahasan dan konstruksi footer di bawah ini dimaksudkan untuk memberikan pemahaman lebih mengenai aturan CSS.

Mari kita mulai dengan teori

Implementasi biasa dari footer yang dipaku bergantung pada properti CSS2 unik yang elemennya merupakan turunan langsungnya TUBUH- pertahankan persentase tinggi ( tinggi:100% atau lainnya) relatif terhadap jendela, jika semua induknya memiliki persentase tinggi yang sama, dimulai dari tag HTML. Sebelumnya, tanpa doctypes, tetapi sekarang dalam Mode Quirks, persentase tinggi elemen didukung di tingkat mana pun, dan dalam doctypes modern - hanya dalam elemen yang ditentukan persentase. Oleh karena itu, jika kita membuat blok konten (sebut saja #tata letak) memiliki tinggi 100%, ia akan bergulir seolah-olah itu adalah sebuah jendela. Semua konten (streaming) ditempatkan di dalamnya, kecuali footer dan mungkin header.

Footer ditempatkan setelah blok ini dan tingginya 0 piksel. Secara umum, Anda bisa mengikuti #tata letak tempatkan blok sebanyak yang Anda suka, tetapi semuanya harus setinggi 0 piksel atau di luar alur dokumen (tidak posisi: statis). Dan ada satu lagi trik penting yang biasa digunakan. Tingginya tidak perlu sama dengan 0. Anda dapat membuat tingginya tetap, tetapi kurangi dari balok utama menggunakan properti margin-bawah: -(tinggi);.

Dalam istilah manusia, gaya membuat "kantong" kosong di bagian bawah, tempat footer dimasukkan, dan selalu menempel di batas bawah jendela, atau di batas bawah dokumen, jika tingginya dokumen lebih besar dari tinggi jendela. Ada banyak implementasi footer di Internet, dengan tingkat keberhasilan yang berbeda-beda di semua browser. Mari kita terus membangunnya sendiri, menggunakan tata letak Habr sebagai “pekerja keras”.

Karena bagian bawah blok #tata letak- ini saku, untuk footernya harus kosong, tidak menampilkan objek halaman. Dan di sini kita menghadapi batasan lain - kita tidak dapat membuat kantong kosong dengan mengorbankan lapisan V #tata letak, karena dengan begitu akan menjadi lebih dari 100%. Itu juga tidak akan menyelamatkanmu batas- kekosongan harus dibuat menggunakan properti elemen bersarang. Selain itu, perlu untuk memastikan bahwa elemen mengambang tidak merangkak di bawah batas blok, yang dilakukan, misalnya, oleh blok

, Di mana .clear(hapus:keduanya). Yang penting itu atau ini" tinggi" telah diperbaiki, baik dalam satuan relatif yang sama, atau kami akan menghitungnya selama perubahan halaman. Biasanya akan lebih mudah untuk menggabungkan blok penyelarasan ini dengan mengaturnya ke ketinggian yang diperlukan.

Mari kita lihat struktur halaman subjek tes kita. Cara termudah untuk melakukannya adalah dengan membuka jendela Firebug atau jendela serupa (Alat Pengembang (Ctrl-F12)) di Chrome.

...Blok iklan teratas...

Mari beralih ke contoh kerja

Yang mana yang kita lihat? kelemahan tata letak dalam hal menerapkan efek footer yang dipaku? Kami melihatnya
1) Footer pada situs terletak di dalam blok dengan id=layout, yang tidak memiliki persentase tinggi. Menurut teori, dia, orang tua dan blok konten.content-left perlu mengatur ketinggian menjadi 100%. Masalah muncul dengan yang terakhir - tidak cocok untuk ini. Akibatnya, satu blok interlayer hilang atau footer tidak berada pada level yang tepat. Di samping itu,
2) Ketinggian footer bervariasi (tergantung jumlah elemen dalam daftar dan ukuran font, ini tidak terlihat dari HTML, tetapi dari CSS). DAN
3) di atas #tata letak ada blok iklan dengan tinggi tetap 90px;
4) tidak ada blok penyelarasan baik di footer atau (secara umum) di blok #tata letak(ya, tapi di atas blok .rotated_posts; namun, mungkin itu harus diklasifikasikan sebagai footer).

Poin 4 - Anda harus menggambarnya dengan skrip.
Tampaknya mudah untuk menangani poin ketiga dengan menambahkan #layout(margin-top:-90px;) Namun perlu diingat bahwa pemblokiran ini mungkin tidak ada - pemblokiran ini disembunyikan dengan pemotongan spanduk, atau pengiklan tiba-tiba memutuskan untuk tidak menampilkannya. Ada sejumlah halaman di situs yang tidak memilikinya. Oleh karena itu ketergantungan margin-atas dari blok iklan adalah ide yang buruk. Jauh lebih baik untuk menempatkannya di dalam #tata letak- maka dia tidak akan mengganggu apapun.

Poin pertama adalah agar footer yang dipaku berfungsi, Anda perlu menempatkan blok footer di bawah #tata letak. Namun, dengan bantuan javascript Anda dapat menerapkan skema footer lain yang dipaku, tetapi bagaimanapun juga, Anda memerlukan JS atau tata letak yang awalnya benar untuk melakukannya tanpanya.

Karena kami tidak bisa lebih kuat dari perancang tata letak situs web terbaru yang “menampar” footer di dalam konten, kami akan mengesampingkan gagasan untuk menempatkan footer dengan benar di situs web masa depan kami (yang, oleh karena itu, akan menjadi “lebih keren” daripada Habr!), dan kita akan membedah Habr dengan javascript (userscript) hingga satu kondisi yang benar. (Katakan saja bukan perancang atau pengalih tata letak yang harus disalahkan, tetapi jenis lokasi, tentu saja, menentukan keputusan strategis manajemen proyek.) Dengan cara ini kita tidak akan mencapai yang ideal, karena dalam satu atau dua detik pertama selama proses pemuatan halaman akan memiliki tata letak yang salah. Namun yang penting bagi kami adalah konsep dan peluang untuk melampaui kualitas website terpopuler di dunia IT.

Oleh karena itu, di tempat yang tepat dalam skrip (di awal, di akhir pemuatan halaman), kami akan menulis transfer blok iklan DOM dan footer ke tempat yang tepat. (Mari bersiap menghadapi kenyataan bahwa, karena skrip pengguna, solusinya akan lebih rumit daripada solusi murni.)
var dQ = function(q)(return document.querySelector(q);) //untuk memperpendek var topL = dQ("#topline"), lay = dQ("#layout"), foot = dQ("#footer" ); if(topL && lay) //banner - di dalam blok konten lay.insertBefore(topL, lay.firstChild); if(lay && foot && lay.nextSibling) //memindahkan footer lay.parentNode.insertBefore(footer, lay.nextSibling);
Kami telah menempatkan blok di tempatnya - sekarang yang tersisa hanyalah menetapkan properti yang diperlukan ke elemen. Ketinggian footer harus diatur dengan tepat, karena kita sudah mengetahuinya pada saat skrip pengguna aktif (akhir pemuatan halaman). Karena trigger point dari skrip pengguna, seperti disebutkan di atas, lompatan pada tampilan footer pada halaman tidak dapat dihindari. Anda dapat mencoba untuk memasang “wajah baik”, tetapi dengan “permainan buruk”? Untuk apa? "Permainan buruk" situs ini memungkinkan Anda membuat konsep tanpa usaha ekstra, yang akan cukup untuk menilai kualitas dan tidak diperlukan untuk "permainan yang benar" pada proyek Anda.
if(kaki)( //block-aligner

di footer h.apnd_el((clss:"clear", appendTo: footer)); var footH = kaki.offsetHeight; //...dan mengukur tinggi footer ) if(topL && lay && footer && lay.nextSibling)( //menyelaraskan blok dengan ketinggian yang diperlukan dalam konten ("tata letak") h.apnd_el((clss:" clear", css:( tinggi: (kakiH ||0) +"px"), appendTo: lay)); lay.style.minHeight = "100%"; h.addRules("#layout(margin-bottom:- "+ footH +"px !penting)html, isi (tinggi:100%)"); )
Di sini kami membiarkan diri kami menggunakan fungsi yang ditulis sendiri h.apnd_el, yang kira-kira melakukan hal yang sama seperti di jQuery -
$("
").css((tinggi: kakiH ||0)).appendTo($(footer))
Dan kemudian - fungsi khas lainnya dalam mengimplementasikan aturan CSS - h.addRules. Anda tidak dapat melakukannya tanpanya di sini, karena Anda perlu mendeklarasikan aturan dengan " !penting" - justru karena kekhasan prioritas gaya dari skrip pengguna.

Dengan potongan kode ini, kita akan dapat melihat footer yang dipaku di skrip pengguna (setelah melompat ke bawah) dan memahami sepenuhnya cara membuat tata letak halaman. Menggunakan desain lompat setiap hari tidak menyenangkan, jadi disarankan untuk melakukannya hanya untuk demonstrasi dan pengujian. Pada skrip pengguna HabrAjax, saya menginstal skrip serupa, menutupnya dengan pengaturan "underFooter" (centang kotak di daftar pengaturan sebelum "footer dipaku ke bawah"), dimulai dengan versi 0.883_2012-09-12.

Apakah memaku footer memengaruhi kebutuhan untuk memperbarui gaya ZenComment jika sudah diinstal? Ya, benar. Karena rantai prioritas gaya yang kompleks, di mana gaya yang disisipkan oleh skrip pengguna memiliki prioritas terendah, kami harus sedikit menyesuaikan gaya pengguna untuk kemungkinan bekerja dengan footer yang dipaku. Jika Anda tidak memperbarui gaya pengguna Anda (ke 2.66_2012-09-12+), footer tidak akan berfungsi secara akurat.

Memblokir diputar_posting (tiga postingan populer dari masa lalu) terlihat lebih logis dengan footer, jadi pada skrip sebenarnya juga dipindahkan ke footer.

Poin kedua (dari daftar kekurangan tata letak) adalah pembahasan murni untuk Habr (tidak berlaku untuk skrip pengguna dan sebagian mengulangi yang sebelumnya).

Halaman memiliki masalah yang mencegahnya membuat footer yang dipaku menggunakan CSS murni - tinggi footer yang tidak ditentukan bergantung pada ukuran font default di browser. Untuk menerapkan footer menggunakan CSS, Anda perlu memilih tinggi relatif font, tetapi font tersebut mungkin tidak berfungsi jika komputer pengguna tidak memiliki font yang diperlukan. Oleh karena itu, solusinya harus menyertakan JavaScript yang dapat menyesuaikan perkiraan posisi footer ke posisi yang tepat menggunakan transisi. Atau, setelah melihat penerimaan solusi yang dibuat dalam skrip pengguna pada platform yang berbeda, buatlah instalasi footer yang diperhitungkan - pengamatan pertama menunjukkan bahwa solusi tersebut praktis.

Kesimpulan: dimungkinkan untuk mendesain tata letak sepenuhnya di Habré, tetapi untuk ini Anda memerlukan perancang tata letak yang memahami dengan jelas perilaku tata letak dan menempatkan blok dalam urutan yang benar. (Saat ini footer dan banner atas berada "di tempat yang salah" dan tidak sedemikian rupa sehingga Anda bisa menata footer begitu saja.) Anda dapat melakukannya tanpa JS jika Anda mengatur tinggi footer dalam satuan relatif, dengan mengambil beberapa ruang untuk ketidakpastian font.

Penerapan

Jika Anda mengaktifkan HabrAjax 0.883+, kita akan melihat "footer yang dipaku" berfungsi. Ketinggiannya disesuaikan menggunakan skrip. Ini memungkinkan Anda untuk mengevaluasi seberapa baik halaman dengan tampilan footer yang dipaku dibandingkan dengan halaman biasa. Gaya pengguna ZenComment kompatibel dengan skrip, tetapi agar footer yang dipaku berfungsi dengan benar, Anda perlu menginstal ZenComment versi 2.66_2012-09-12 +.

Fakta tentang perilaku implementasi

Perdukunan dengan footer, gaya dan aksara adalah perdukunan (hanya didukung oleh teori). Perilaku ini sedikit berbeda di berbagai browser, namun di beberapa tempat hal ini tidak terduga. Tanpa skrip pengguna dan penataan ulang blok, hasilnya akan berbeda. Inilah yang dihasilkan oleh eksperimen implementasi dalam skrip pengguna.

1) Firefox - kurangnya lompatan footer yang tidak terduga. Anehnya mereka tidak ada di sana - rendering terjadi setelah footer ditempatkan di bagian bawah.

2) Chrome - ini mengejutkan saya dengan "pengguliran mengembara" - ruang kosong di bagian bawah ditambahkan ke halaman dengan jangka waktu satu kali per detik - ada yang salah terjadi dengan perhitungan ketinggian. Solusinya adalah dengan menulis html,body(height:100%) dalam gaya pengguna, tetapi tidak ada jaminan bahwa itu akan selalu berhasil. Lebih dapat diandalkan untuk memeriksa apakah dokumen melebihi ketinggian jendela, dan jika tidak, pindahkan footer, jika tidak - tidak ada. Melompat tidak apa-apa, itu ada.

3) Opera - tidak ada lompatan (v. 12.02) saat halaman pertama kali dimuat, tetapi pemuatan ulang yang tergesa-gesa mungkin menunjukkan lompatan footer. Kalau tidak, ia berperilaku tidak kalah benarnya dengan Fx.

Nah, Anda harus secara khusus mengajari Chrome untuk berperilaku benar (dengan skrip) dan meluncurkan versi dalam formulir ini untuk ditampilkan. Oleh karena itu, bagian dalam skrip pengguna sedikit lebih rumit daripada yang diberikan dalam artikel.

Perlu diingat bahwa ini bukan implementasi penuh - ini tidak memperhitungkan, misalnya, kasus pengubahan ukuran jendela oleh pengguna. Anda juga dapat menemukan (dalam praktiknya) kombinasi perubahan ketinggian footer sebelum dan sesudah perpindahan, yang logikanya mulai gagal tanpa menimbulkan ketidaknyamanan. Kekurangan tersebut sengaja dibiarkan, karena tetap terjaga keseimbangan antara kompleksitas perbaikan dan sifat solusi yang bersifat sementara.

Hasilnya, kami mendapatkan skema operasi yang sepenuhnya bisa diterapkan, setidaknya untuk komputer desktop yang cepat. Jika perilaku footer yang salah terdeteksi, pengaturan “underFooter” harus dinonaktifkan.

Untuk halaman apa ini berguna?

Di situs web standar, tanpa gaya pengguna, bahkan halaman tanya jawab pendek pun akan berukuran lebih dari 1500 piksel, yang dalam banyak kasus tidak terlihat dengan monitor horizontal. Tetapi bahkan dengan monitor biasa, Anda sering menemukan halaman pengguna pribadi dengan tinggi sekitar 1300 piksel, di mana footer yang tidak dilampirkan muncul dengan segala kemegahannya. Jumlah halaman pada pengaturan pengguna juga tidak terlalu banyak.

Jika Anda menggunakan gaya pengguna ZenComment, gaya tersebut sangat mengurangi tinggi halaman yang diperlukan, dan skrip pengguna HabrAjax mungkin tidak menampilkan beberapa atau seluruh blok samping di sidebar. Oleh karena itu, dengan skrip dan gaya, efek footer yang tidak dilampirkan lebih sering diamati. Oleh karena itu, masuk akal jika perbaikan footer muncul di HabrAjax untuk pertama kalinya. Namun situs web biasa juga memiliki sejumlah halaman yang footernya berguna.

Apakah akan ada dukungan?

Perilaku situs selama setahun terakhir menunjukkan bahwa pengembang (dan juga manajemen) mulai memperkenalkan fitur-fitur yang sebelumnya hanya ada di skrip pengguna dan gaya pengguna. Misalnya, di awal tahun saya menulis di mana saya mengumpulkan banyak harapan kecil. Enam bulan kemudian, saya kembali ke sana dan dengan senang hati mencatat (tepat di teks; Anda dapat melihat “UPD” dan tanggalnya) bahwa sejumlah fitur yang digambarkan sebagai keinginan telah diterapkan ke dalam situs.

Selanjutnya, mari kita lihat “panah” dan bukan kotak untuk komentar penilaian. Mereka muncul di userils (“Prettifier”) sekitar 3 tahun lalu dan diadopsi ke ZenComment sekitar 2 tahun lalu. Sekitar 2-3 bulan yang lalu mereka muncul di situs. Seseorang mulai percaya bahwa setelah beberapa waktu panah-panah tersebut akan diberi jarak tertentu, seperti yang dilakukan di ZenComment (satu panah ke kiri nomor, yang kedua ke kanan) agar tidak meleset.

  • gaya pengguna
  • HabrAjax
  • Tambahkan tanda

    Setiap perancang tata letak cepat atau lambat dihadapkan pada kebutuhan untuk menekan footer situs web ke bagian bawah halaman. Ada beberapa cara di Internet untuk mengatasi masalah ini. Saya akan menunjukkan kepada Anda beberapa di antaranya yang saya sendiri gunakan dalam praktiknya.

    Markup html paling sederhana:

    Metode #1

    Footer didorong ke bawah dengan memposisikannya secara absolut dan meregangkan ketinggian blok induk (html, body, dan wrapper) hingga 100%. Dalam hal ini, blok konten perlu menentukan margin bawah yang sama dengan atau lebih besar dari tinggi footer, jika tidak, margin bawah akan menutupi sebagian konten.

    * ( margin: 0; padding: 0; ) html, body ( tinggi: 100%; ) .wrapper ( posisi: relatif; tinggi minimum: 100%; ) .content ( padding-bottom: 90px; ) .footer ( posisi : mutlak; kiri: 0; lebar: 100%;

    Metode #2

    Footer ditekan ke bawah dengan menarik blok konten dan "induknya" ke ketinggian penuh jendela browser dan mengangkat footer ke atas melalui margin negatif (margin-top) untuk menghilangkan gulir vertikal yang muncul. Dalam hal ini, perlu untuk menunjukkan ketinggian ruang bawah tanah, dan itu harus sama dengan jumlah lekukan. Berkat properti box-sizing: border-box, kami mencegah kotak dengan kelas konten melebihi tinggi 100%. Artinya, dalam hal ini min-height: 100% + padding-bottom: 90px sama dengan 100% tinggi jendela browser.

    * ( margin: 0; padding: 0; ) html, body, .wrapper ( tinggi: 100%; ) .content ( ukuran kotak: border-box; min-height: 100%; padding-bottom: 90px; ) . footer ( tinggi: 80 piksel; margin-atas: -80 piksel; )

    Metode #3

    Metode ini bagus karena, tidak seperti metode lainnya (kecuali metode ke-5), ketinggian footer tidak menjadi masalah. Di sini kita meniru perilaku tabel dengan mengubah blok pembungkus menjadi tabel dan blok konten menjadi baris tabel (masing-masing properti tampilan: tabel dan tampilan: baris tabel). Berkat ini, dan fakta bahwa blok konten dan semua wadah induknya disetel ke tinggi 100%, konten direntangkan hingga ketinggian penuh, dikurangi tinggi footer, yang ditentukan secara otomatis - emulasi tabel mencegah footer meluas melampaui ketinggian jendela browser.

    *( margin: 0; padding: 0; ) html, isi ( tinggi: 100%; ) .wrapper ( tampilan: tabel; tinggi: 100%; ) .content ( tampilan: baris tabel; tinggi: 100%; )

    Metode #4

    Metode ini tidak seperti metode sebelumnya, dan kekhasannya adalah penggunaan fungsi CSS calc() dan satuan pengukuran vh, yang hanya didukung oleh browser modern. Di sini Anda perlu mengetahui ketinggian footer yang tepat. 100vh adalah tinggi jendela browser dan 80px adalah tinggi footer. Dan dengan menggunakan fungsi calc() kita mengurangi nilai kedua dari nilai pertama, sehingga menekan footer ke bawah.

    * ( margin: 0; padding: 0; ) .content ( tinggi minimum: calc(100vh - 80px); )

    Metode #5

    Ini mungkin metode terbaik dari semua metode yang disajikan, tetapi hanya berfungsi di browser modern. Seperti pada metode ketiga, ketinggian footer tidak menjadi masalah.

    * ( margin: 0; padding: 0; ) html, isi ( tinggi: 100%; ) .wrapper ( tampilan: fleksibel; arah fleksibel: kolom; tinggi: 100%; ) .content ( fleksibel: 1 0 otomatis; ) .footer (fleksibel: 0 0 otomatis; )

    Metode #6

    Seluruh perpustakaan untuk berbagai kasus (menggunakan Flexbox)

    Vlad Merzhevich

    Dalam jargon pengembang web, footer adalah bagian bawah situs, tempat penulisan hak cipta, kontak dipublikasikan, berbagai counter ditampilkan, dan informasi serupa. Biasanya, footer terletak setelah semua konten dan hanya terlihat saat halaman di-scroll. Dalam beberapa kasus, diinginkan untuk membuat footer selalu dapat diakses, berapapun tinggi halamannya, dan memasangnya di bagian bawah jendela browser.

    Untuk melakukan ini, kita akan menggunakan properti position dan nilainya tetap. Dalam hal ini, elemen tetap berada di satu tempat, dan posisinya ditentukan oleh koordinat melalui properti top , right , bottom , left . Dalam kasus kami, cukup dengan menyetel nilai kiri dan bawah ke nol. Lebar elemen tetap sama dengan isinya, yang terlihat jelas jika Anda menambahkan warna latar belakang atau gambar, jadi Anda juga harus mengatur lebar menggunakan lebar menjadi 100% (contoh 1).

    Contoh 1: Ruang Bawah Tanah Tetap

    Ruang Bawah Tanah Tetap

    Semua metode penangkapan singa yang tercantum di situs bersifat teoritis dan berdasarkan metode komputasi. Penulis tidak menjamin keselamatan Anda saat menggunakannya dan melepaskan semua tanggung jawab atas hasilnya. Ingat, singa adalah predator dan hewan berbahaya!

    Hasil contoh ditunjukkan pada Gambar. 1.

    Beras. 1. Footer di bagian bawah halaman

    Internet Explorer 6 tidak mendukung nilai tetap, jadi contoh ini tidak akan berfungsi dengan benar di dalamnya. Untuk IE6 Anda harus menambahkan dua tag ke kode

    , menempatkannya di dalam wadah konten dan footer, dan juga menyertakan gaya lain khusus untuk browser ini (contoh 2).

    Contoh 2: Kode dengan mempertimbangkan IE6

    XHTML 1.0 CSS 2.1 YAITU Cr Op Sa Fx

    Ruang Bawah Tanah Tetap

    Semua metode penangkapan singa yang tercantum di situs bersifat teoritis dan berdasarkan metode komputasi. Penulis tidak menjamin keselamatan Anda saat menggunakannya dan menolak semua tanggung jawab atas hasilnya. Ingat, singa adalah predator dan hewan berbahaya!

    Contoh ini menggunakan nilai absolut dari properti position. Dengan pemosisian absolut, sebuah elemen dapat ditempatkan di mana saja di jendela browser, tetapi elemen tersebut akan bergulir mengikuti konten. Inilah perbedaan utama antara nilai tetap dan nilai absolut. Untuk mencegah footer berpindah, tinggi halaman disetel ke 100% dan segala sesuatu yang tidak sesuai dengan dimensi jendela saat ini terpotong. Dalam hal ini, bilah gulir vertikal akan hilang; itu harus ditambahkan ke konten menggunakan overflow .

    Momen tidak menyenangkan lainnya adalah overlay background footer pada scroll bar, sehingga Anda harus mengatur indentasi yang tepat sesuai lebar scrollbar. Apalagi jika tidak ada scroll bar, akan ada lubang di basement sebelah kanan.

    Ini semacam mimpi buruk! Mengapa footer situs Anda “muncul” lagi dan menggeser desain? Apakah benar-benar mustahil untuk menekan footer ke bagian bawah halaman dengan benar dengan sesuatu? Setidaknya konten atau batu bata! Brick tidak muat di monitor?


    Begitu, lalu duduk dan tidak melakukan apa pun sampai Anda membaca artikel kami sampai akhir.

    Membuat footer yang tepat untuk website Anda

    Banyak pemilik situs web mengalami masalah ini ketika footer halaman melayang ke atas. Dan kemudian tidak jelas apa yang harus dilakukan. Seringkali, desain situs web yang dibuat dengan tergesa-gesa, sendirian, mengalami kelemahan ini ( lingkari “tangan gila”) atau webmaster pemula.

    Pada saat yang sama, tidak ada hal buruk yang terjadi pada tahap awal kehidupan situs. Dan keindahan ini terus berlanjut selama konten tersebut memberikan “bobotnya” pada ruang bawah tanah, mencegahnya untuk naik ke atas. Namun ada baiknya menempatkan materi dalam jumlah yang lebih kecil di halaman, dan footer yang baru-baru ini "tenang" langsung naik ke atas, membuat seluruh desain situs menjadi tampilan yang tidak pantas.

    Untuk menghilangkan “cacat” pada template yang dirancang ini, tidak perlu mengeluarkan uang untuk layanan webmaster. Paling sering, footer situs dapat dipasang sendiri. Mari pertimbangkan semua opsi yang memungkinkan untuk menghilangkan masalah ini:

    Cara pertama

    Cara pertama untuk “menautkan” footer “ke bagian bawah” halaman didasarkan pada CSS. Mari kita mulai dengan contoh kode, lalu lihat lebih dekat implementasinya:

    html ( tinggi: 100%; ) header, nav, bagian, artikel, samping, footer ( tampilan: blok; ) badan ( tinggi: 100%; ) #wrapper ( lebar: 1000px; margin: 0 otomatis; tinggi minimum: 100 %; tinggi: otomatis !penting; tinggi: 100%; ) #header ( tinggi: 150px; warna latar: rgb(0,255,255); ) #konten ( bantalan: 100px; tinggi:400px; warna latar: rgb(51,255,102) ; ) #footer ( lebar: 1000px; margin: -100px otomatis 0; tinggi: 100px; posisi: relatif; warna latar: rgb(51,51,204); )

    Untuk melampirkan tag footer ke bagian bawah halaman

    kami memindahkannya ke luar wadah (lapisan pembungkus). Kami meregangkan seluruh halaman dan konten "badan" ke tepi layar. Untuk melakukan ini, atur tinggi tag dalam kode CSS Dan pada 100%:

    html ( tinggi: 100%; ) badan ( tinggi: 100%; )

    Kami juga mengatur tinggi minimum lapisan wadah menjadi 100%. Jika lebar konten lebih besar dari tinggi wadah, setel properti ke auto . Berkat ini, pembungkusnya akan secara otomatis menyesuaikan dengan lebar konten yang ditempatkan pada halaman:

    #wrapper ( tinggi minimum: 100%; tinggi: otomatis !penting; tinggi: 100%; )

    Baris kode "height: 100%" ditujukan untuk versi IE lama yang tidak menerima properti min-height.

    Untuk memisahkan ruang footer pada desain halaman, kami menetapkan indentasi untuk tag dalam 100 piksel:

    #konten ( bantalan: 100 piksel; )

    Pada tahap ini, kita memiliki halaman web dengan lebar layar penuh dan tambahan 100 piksel, yang “dinetralkan” dengan nilai margin negatif untuk footer (margin: -100px) ketika posisinya disetel ke relatif (posisi: relatif ). Jadi, dengan menggunakan nilai padding negatif, kita "menarik" footer ke dalam area container yang tingginya disetel ke 100%.

    Dalam contoh ini, markup dokumen web ditentukan menggunakan tag HTML 5 yang relatif baru, yang mungkin tidak ditafsirkan dengan benar oleh browser lama. Oleh karena itu, keseluruhan desain halaman mungkin tidak ditampilkan dengan benar. Untuk menghindari hal ini, Anda perlu mengganti tag baru dari gudang bahasa hypertext versi 5 dengan yang biasa

    :

    isi

    Versi yang ditingkatkan

    Cara yang dibahas di atas tentang cara membuat footer di bagian bawah halaman “tak tergoyahkan” tidak cocok untuk semua orang. Jika Anda ingin memodifikasi dan menyempurnakan desain situs Anda menggunakan pop-up di masa mendatang, lebih baik berhenti menggunakan penerapan sebelumnya.

    Properti CSS yang paling umum digunakan untuk jendela pop-up adalah z-index. Dengan menggunakan nilainya, Anda menentukan urutan tumpukan lapisan di atas satu sama lain.

    Semakin tinggi nilai indeks-z suatu elemen, semakin tinggi pula elemen tersebut akan muncul di tumpukan “pelapisan” secara keseluruhan.

    Namun karena kita menggunakan nilai padding negatif untuk footer pada contoh sebelumnya, bagian bawah popup akan tumpang tindih dengan area footer atas. Padahal akan memiliki nilai indeks z yang lebih tinggi. Karena induk jendela popup (pembungkus) masih memiliki nilai yang lebih rendah untuk properti ini.

    Berikut opsi lebih lanjut:

    CSS - contoh kode:

    html, body ( tinggi: 100%; ) .header ( tinggi:120px; warna latar: rgb(0,255,102); ) .main ( tinggi minimum:100%; posisi: relatif; warna latar: rgb(100,255,255); ) .footer ( tinggi:150px; posisi: absolut; kiri: 0; bawah: 0; lebar: 100%; warna latar: rgb(0,0,153); )


    Seperti yang Anda lihat dari kode, kami menempatkan footer sebagai bagian dari elemen utama. Kami mengatur wadah ke posisi relatif, dan footer ke posisi absolut. Kami memperbaiki basement di bagian paling bawah wadah, mengatur posisinya ke kiri dan atas ke 0.

    Pilihan untuk basement dengan ketinggian tidak tetap

    Implementasi sebelumnya dapat memastikan bahwa footer selalu berada di bagian bawah halaman. Namun hanya jika footer memiliki lebar tetap. Namun bagaimana jika jumlah konten yang diposting di dalamnya tidak dapat diprediksi?

    Ini akan memerlukan opsi lebih lanjut untuk ruang bawah tanah tidak tetap. Ini menetapkan footer ke baris tabel untuk properti tampilannya. Ini akan membuatnya tampak sebagai baris tabel.

    Bagaimana dorong footer ke bagian bawah halaman? Pertanyaan ini ditanyakan oleh banyak orang yang pernah menjumpai tata letak tata letak situs web. Faktanya adalah bahwa jika ketinggian blok dalam tata letak ini tidak ditentukan secara eksplisit, maka itu tergantung pada jumlah kontennya, jika konten ini cukup kecil, maka seluruh tata letak dapat menempati ketinggian kurang dari jendela browser; . Tentu saja, semua ini tidak terlihat bagus. Sekarang saya akan menunjukkan kepada Anda beberapa cara untuk mendorong footer ke bagian bawah halaman sehingga membuat tata letaknya lebih menarik dan familiar.

    Dalam setiap contoh kita akan mulai dari fakta itu tata letak situs memiliki struktur yang biasa (tata letak Anda mungkin berbeda, tetapi metodenya bersifat universal):

    Isi

    Selanjutnya, blok tambahan, properti CSS, dll. akan ditambahkan ke tata letak untuk mencapai hasil yang diinginkan. Namun, dalam tata letak di mana Anda memutuskan untuk memindahkan footer ke bagian bawah halaman, blok atau beberapa properti ini mungkin sudah ada, jadi tidak perlu menambahkannya lagi. Semua properti CSS yang terlibat langsung dalam memakukan footer ke bawah disediakan dengan komentar.

    Tekan footer ke bawah menggunakan positioning

    situs web - tekan footer ke bawah menggunakan positioning
    Isi

    Deskripsi contoh

    1. Semua blok tata letak dibungkus dengan blok pembungkus tambahan id="wrapper" yang diberi tinggi minimum (properti CSS) 100% sehingga dapat meregang hingga setinggi jendela browser, tetapi dapat meregang lebih jauh jika diperlukan. Namun, karena nilai persentase dihitung relatif terhadap leluhur, agar ini berfungsi, kami harus secara eksplisit menentukan tinggi (CSS) untuk tag dan.
    2. Langkah selanjutnya adalah memposisikan secara mutlak (CSS) footer relatif terhadap blok pembungkus di sisi bawahnya (CSS). Dengan demikian, footer kami ditekan ke bagian bawah halaman.
    3. Karena pemosisian absolut membuat elemen keluar dari aliran, saat menambahkan informasi ke blok dengan konten dan menu, sebagian darinya akan berada di bawah footer yang ditekan. Untuk mencegah hal ini terjadi, elemen id="content" dan id="menu" disetel agar memiliki padding bawah (CSS) yang sama dengan tinggi footer. Sekarang merekalah yang akan berada di bawah footer dan menekannya ke bawah.
    4. Karena dalam tata letak kami, blok dengan menu mengambang (CSS), footer tetap tidak menyadarinya, dan karenanya, menu tidak akan mendorongnya ke bawah. Untuk memperbaikinya, blok lain (class="clear") dibuat yang merusak pembungkus (properti CSS). Omong-omong, jika Anda tidak berencana untuk mendukung IE6 dan IE7, maka alih-alih blok ini Anda dapat menerapkan elemen semu ke blok terakhir sebelum footer (inilah "konten") dan cukup hentikan alirannya.

    Pada paragraf pertama, properti CSS digunakan untuk menunjukkan tinggi minimum, yang mana Internet Explorer 6 tidak memahaminya, namun ia memahami properti tersebut sebagai tinggi minimum. Selain itu, browser ini mengabaikan aturan dalam kasus tertentu. Kedua fitur ini digunakan dalam contoh ini untuk membuat haka untuk membuatnya melakukan apa yang perlu dilakukan tanpa mempengaruhi browser lain.

    Tekan footer ke bawah menggunakan blok tambahan

    situs web - tekan footer ke bawah menggunakan blok tambahan
    Isi

    Deskripsi contoh

    1. Semua blok tata letak kecuali footer dibungkus dengan blok id="wrapper" tambahan, yang disetel ke tinggi minimum (CSS) 100%. Hal ini dilakukan agar pembungkus blok setidaknya dapat meregang hingga setinggi jendela browser, tetapi jika perlu (jika ada banyak konten) dapat meregang lebih jauh. Sekarang tinggi wrapper kita sama dengan tinggi jendela browser, dan tinggi seluruh halaman HTML = tinggi wrapper + tinggi footer.
    2. Sebagai hasil dari tindakan poin pertama, meskipun footer kita ditekan ke bagian bawah halaman, namun melampaui batas bawah jendela browser, dan ini tidak baik. Untuk meningkatkan visibilitasnya, margin negatif atas (CSS) ditetapkan untuknya, yang ukurannya sama dengan tinggi footer itu sendiri. Itu saja, footer ditekan dan terletak di bagian bawah halaman.
    3. Karena pada paragraf sebelumnya kita menentukan margin negatif atas untuk footer yang ditekan, saat menambahkan informasi ke blok dengan konten atau menu, sebagiannya akan berada di bawah footer ini. Untuk menghindari hal ini, blok lain dibuat dengan id="footer_true" , ​​yang tingginya sama (Anda dapat membuatnya sedikit lebih besar) dengan tinggi footer. Jadi, blok korektif inilah yang akan berada di bawah footer yang ditekan dan mendorongnya ke bawah, mencegah informasi disembunyikan.
    4. Wrap break (CSS) telah ditambahkan ke blok penyesuaian untuk mencegahnya membungkus menu jika melebihi tinggi konten. Oleh karena itu, gangguan aliran ini telah dihapus dari footer itu sendiri karena dianggap tidak perlu.

    Seperti pada contoh pertama, untuk IE6, peretasan khusus digunakan di sini yang memungkinkan Anda mengatur ketinggian minimumnya.