Pada markup yang ditunjukkan di bawah ini, saya mencoba untuk mendapatkan div konten untuk merentangkan semua jalan ke bagian bawah halaman tetapi itu hanya peregangan jika ada konten untuk ditampilkan. Alasan saya ingin melakukan ini adalah agar batas vertikal tetap muncul di bawah halaman walaupun tidak ada konten untuk ditampilkan.
Inilah HTML saya :
<body>
<form id="form1">
<div id="header">
<a title="Home" href="index.html" />
</div>
<div id="menuwrapper">
<div id="menu">
</div>
</div>
<div id="content">
</div>
Dan CSS saya :
body {
font-family: Trebuchet MS, Verdana, MS Sans Serif;
font-size:0.9em;
margin:0;
padding:0;
}
div#header {
width: 100%;
height: 100px;
}
#header a {
background-position: 100px 30px;
background: transparent url(site-style-images/sitelogo.jpg) no-repeat fixed 100px 30px;
height: 80px;
display: block;
}
#header, #menuwrapper {
background-repeat: repeat;
background-image: url(site-style-images/darkblue_background_color.jpg);
}
#menu #menuwrapper {
height:25px;
}
div#menuwrapper {
width:100%
}
#menu, #content {
width:1024px;
margin: 0 auto;
}
div#menu {
height: 25px;
background-color:#50657a;
}
Jawaban:
Masalah Anda bukanlah bahwa div tidak pada ketinggian 100%, tetapi bahwa wadah di sekitarnya tidak. Ini akan membantu dalam browser saya menduga Anda menggunakan:
Anda mungkin perlu menyesuaikan bantalan dan margin juga, tetapi ini akan membuat Anda 90% dari perjalanan ke sana. Jika Anda perlu membuatnya berfungsi dengan semua browser Anda harus sedikit mengacaukannya.
Situs ini memiliki beberapa contoh luar biasa:
http://www.brunildo.org/test/html_body_0.html
http://www.brunildo.org/test/html_body_11b.html
http://www.brunildo.org/test/index.html
Saya juga merekomendasikan pergi ke http://quirksmode.org/
sumber
Saya akan mencoba menjawab pertanyaan secara langsung dalam judul, alih-alih bersikeras menempelkan footer ke bagian bawah halaman.
Buat div hingga ke bagian bawah halaman jika tidak ada cukup konten untuk mengisi viewport browser vertikal yang tersedia:
Demo di (seret gagang bingkai untuk melihat efek): http://jsfiddle.net/NN7ky
(terbalik: bersih, sederhana. Downside: membutuhkan flexbox - http://caniuse.com/flexbox )
HTML:
CSS:
ta-da - atau aku terlalu mengantuk
sumber
Coba mainkan dengan aturan css berikut:
Ubah ketinggian agar sesuai dengan halaman Anda. ketinggian disebutkan dua kali untuk kompatibilitas lintas browser.
sumber
Anda dapat meretasnya dengan deklarasi min-height
sumber
Coba solusi "Sticky Footer" Ryan Fait,
http://ryanfait.com/sticky-footer/
http://ryanfait.com/resources/footer-stick-to-bottom-of-page/
Bekerja di IE, Firefox, Chrome, Safari dan seharusnya Opera juga, tetapi belum mengujinya. Ini solusi hebat. Sangat mudah dan dapat diandalkan untuk diimplementasikan.
sumber
Properti min-height tidak didukung oleh semua browser. Jika Anda perlu #content Anda untuk memperpanjang tingginya di halaman yang lebih panjang, properti height akan memotongnya.
Ini sedikit hack tetapi Anda bisa menambahkan div kosong dengan lebar 1px dan tinggi misalnya 1000px di dalam #content div Anda. Itu akan memaksa konten menjadi setidaknya 1000px tinggi dan masih memungkinkan konten yang lebih panjang untuk memperpanjang ketinggian saat dibutuhkan
sumber
Meskipun tidak semewah CSS murni, sedikit javascript dapat membantu mencapai hal ini:
sumber
Mencoba:
Belum mengujinya ...
sumber
Footer lengket dengan ketinggian tetap:
Skema HTML:
CSS:
sumber
Coba http://mystrd.at/modern-clean-css-sticky-footer/
Tautan di atas tidak aktif, tetapi tautan ini https://stackoverflow.com/a/18066619/1944643 ok. : D
Demo:
sumber
Anda bisa menggunakan satuan panjang "vh" untuk properti min-height dari elemen itu sendiri dan orang tuanya. Ini didukung sejak IE9:
CSS:
sumber
Saya pikir masalah akan diperbaiki hanya membuat html mengisi 100% juga, mungkin tubuh mengisi 100% dari html tetapi html tidak mengisi 100% layar.
Coba dengan:
sumber
Anda juga mungkin menyukai ini: http://matthewjamestaylor.com/blog/ultimate-2-column-left-menu-pixels.htm
Ini bukan apa yang Anda minta, tetapi mungkin juga sesuai dengan kebutuhan Anda.
sumber
Saya tidak punya kode, tapi saya tahu saya pernah melakukan ini menggunakan kombinasi tinggi: 1000px dan margin-bottom: -1000px; Coba itu.
sumber
Bergantung pada bagaimana tata letak Anda bekerja, Anda mungkin bisa pergi dengan mengatur latar belakang pada
<html>
elemen, yang selalu setidaknya setinggi viewport.sumber
Ini tidak mungkin dilakukan hanya menggunakan stylesheet (CSS). Beberapa browser tidak akan menerima
sebagai nilai yang lebih tinggi dari sudut pandang jendela browser.
Javascript adalah solusi lintas browser termudah, meskipun seperti yang disebutkan, bukan yang bersih atau indah.
sumber
Saya tahu ini bukan metode terbaik, tapi saya tidak bisa mengetahuinya tanpa mengacaukan header, menu, dll. Jadi .... Saya menggunakan meja untuk dua colum itu. Itu adalah perbaikan CEPAT. Tidak perlu JS;)
sumber
Bukan yang terbaik atau implementasi terbaik dari standar terhebat, tetapi Anda dapat mengubah DIV untuk SPAN ... Ini tidak begitu direkomendasikan tetapi perbaikan cepat = P =)
sumber