Saya memiliki div bersarang ini dan saya perlu wadah utama untuk memperluas (tingginya) untuk mengakomodasi DIVs di dalamnya
<!-- head -->
...
<!-- /head -->
<body class="main">
<div id="container">
<div id="header">
<!--series of divs in here, graphic banner etc. -->
</div>
<div id="main_content"> <!-- this DIV _should_ stretch to accommodate inner divs -->
<div id="items_list" class="items_list ui-sortable">
<div id="item_35" class="item_details">
</div>
<div id="item_36" class="item_details">
</div>
<div id="item_37" class="item_details">
</div>
<!-- this list of DIVs "item_xx" goes on for a while
each one representing a photo with name, caption etcetc -->
</div>
</div>
<br class="clear"/>
<div id="footer">
</div>
</body>
</html>
CSS adalah ini:
* {
padding: 0;
margin: 0;
}
.main {
font: 100% Verdana, Arial, Helvetica, sans-serif;
background: #4c5462;
margin: 0;
padding: 0;
text-align: center;
color: #000000;
}
.main #container {
height: auto;
width: 46em;
background: #4c5462;
margin: 0 auto;
border: 0px solid #000000;
text-align: left;
}
.main #main_content {
padding: 5px;
margin: 0px;
}
#items_list {
width: 400px;
float: left;
}
.items_list {
width: 400px;
float: left;
}
.item_details {
margin-top: 3px;
margin-bottom: 3px;
padding: 3px;
float: left;
border-bottom: 0.5px solid blue;
}
Masalah yang saya miliki adalah bahwa #main_content
tidak meregang untuk mengakomodasi semua div batin, dengan hasil bahwa mereka terus berjalan dengan latar belakang.
Bagaimana saya bisa menyelesaikan masalah ini dengan mempertimbangkan skenario di atas?
<strong>Edited</strong>$Reason_for_revising_question...
Anda mungkin perlu mengubah judul pertanyaan untuk mencerminkan perubahan jika ada perubahan besar atau penambahan dalam fokusnya. =)div
tag denganid='container'
. Itu bisa menyebabkan beberapa masalah..clear
kelas. Apakah Anda lupa, atau apakah itu dalam kode asli Anda? The.clear
kelas pada yangbr
sangat penting sebagai @jennyfofenny menyebutkan dalam jawaban mereka.Jawaban:
Anda harus memaksakan
clear:both
sebelum#main_content
div ditutup. Saya mungkin akan memindahkannya<br class="clear" />;
ke#main_content
div dan mengatur CSS menjadi:Pembaruan: Pertanyaan ini masih mendapatkan cukup banyak lalu lintas, jadi saya ingin memperbarui jawabannya dengan alternatif modern menggunakan mode tata letak baru di CSS3 yang disebut kotak Fleksibel atau Flexbox :
Sebagian besar browser modern saat ini mendukung unit Flexbox dan viewport , tetapi jika Anda harus mempertahankan dukungan untuk browser lama, pastikan untuk memeriksa kompatibilitas untuk versi browser tertentu.
sumber
Coba ini:
overflow: auto;
Ini berhasil untuk masalah saya ..
sumber
display: block;
dengan itutambahkan yang berikut:
ke div utama Anda. Menghilangkan kebutuhan ekstra
<br />
untuk yang jelas.sumber
sebagai cara alternatif Anda juga dapat mencoba ini yang mungkin berguna dalam beberapa situasi
jsFiddle
sumber
Saya hanya akan menggunakan
di div Anda. Ya, saya tahu saya sedikit terlambat tapi saya pikir ini mungkin membantu orang seperti itu akan membantu saya jika ada di sini.
sumber
height: auto;
menyebabkan semua item di bawah ini bergerak ke atas. Dengan properti ini di div konten utama saya, footer halaman saya bergerak ke atas sehingga menyentuh header dan tumpang tindih div konten saya.Hal-hal berikut harus bekerja:
sumber
Cara yang sangat sederhana
Pada DIV induk:
height: 100%;
Ini bekerja untuk saya setiap saat
sumber
Gunakan tag rentang dengan
display:inline-block
css terlampir. Anda kemudian dapat menggunakan CSS dan memanipulasinya seperti div dalam banyak cara tetapi jika Anda tidak menyertakan awidth
atauheight
memperluas dan menarik berdasarkan kontennya.Semoga itu bisa membantu.
sumber
div
(bukan aspan
) tetapidisplay: inline-block
masih berfungsi dalam casing saya (Chromium).Biasanya saya pikir ini bisa diselesaikan dengan memaksa
clear:both
aturan pada elemen anak terakhir dari#items_list
.Anda dapat menggunakan:
Atau, jika Anda menggunakan bahasa dinamis, tambahkan kelas tambahan ke elemen terakhir yang dihasilkan dalam loop apa pun yang membuat daftar itu sendiri, sehingga Anda berakhir dengan sesuatu di html Anda seperti:
dan css
sumber
Masalah ini muncul ketika elemen Anak dari Div Induk mengambang. Inilah Solusi Terbaru dari masalah:
Dalam file CSS Anda, tulis kelas berikut yang disebut .clearfix bersama dengan pemilih semu : setelah
Kemudian, di HTML Anda, tambahkan kelas .clearfix ke Div orang tua Anda. Sebagai contoh:
Itu harus selalu berhasil. Anda dapat memanggil nama kelas sebagai .group daripada .clearfix , karena akan membuat kode lebih semantik. Perhatikan bahwa, Tidak perlu menambahkan titik atau bahkan spasi dalam nilai Konten di antara kutipan ganda "". Juga, overflow: otomatis;mungkin menyelesaikan masalah tetapi menyebabkan masalah lain seperti menampilkan bilah gulir dan tidak disarankan.
Sumber: Blog Lisa Catalano dan Chris Coyier
sumber
tambahkan properti float ke
#main_content
div - itu kemudian akan diperluas untuk mengandung konten yang melayangsumber
Sebelum melakukan apa pun periksa aturan css dengan:
Hapus jika ada dan tidak membutuhkannya.
sumber
Elemen melayang tidak menempati ruang di dalam elemen induk, Seperti namanya mereka melayang! Jadi, jika ketinggian secara eksplisit tidak disediakan untuk elemen yang elemen anak-nya melayang, maka elemen induk akan tampak menyusut & tampaknya tidak menerima dimensi elemen anak, juga jika diberikan
overflow:hidden;
, anak-anaknya mungkin tidak muncul di layar. Ada beberapa cara untuk mengatasi masalah ini:Masukkan elemen lain di bawah elemen terapung dengan
clear:both;
properti, atau gunakanclear:both;
pada:after
elemen terapung.Gunakan
display:inline-block;
atauflex-box
bukanfloat
.sumber
Sepertinya ini berfungsi
Dibutuhkan ukuran layar minimum, dan jika konten membesar maka akan bertambah.
sumber
Dalam CSS:
#clear_div{clear:both;}
Setelah tag div dari inner div tambahkan div berikut ini baru
http://www.w3schools.com/cssref/pr_class_clear.asp : untuk informasi lebih lanjut
sumber
Saya menambahkan Bootstrap ke proyek dengan
section
tag yang telah saya atur hingga 100% dari ketinggian layar. Itu bekerja dengan baik sampai saya membuat proyek responsif, di mana saya meminjam sebagian dari jawaban jennyfofenny sehingga latar belakang bagian saya cocok dengan latar belakang konten ketika ukuran layar berubah pada layar yang lebih kecil.section
CSS baru saya terlihat seperti ini:Katakanlah Anda memiliki bagian yang berwarna tertentu. Dengan menggunakan
min-height
, jika lebar bagian menyusut karena layar yang lebih kecil, ketinggian bagian akan membesar, konten akan tetap berada di dalam bagian tersebut, dan latar belakang Anda akan tetap warna yang diinginkan.sumber
Sudahkah Anda mencoba cara tradisional? berikan tinggi kontainer utama: otomatis
Saya telah menggunakan ini dan itu berfungsi sebagian besar waktu dengan saya.
sumber
Saya mengalami ini pada proyek sendiri - Saya punya meja di dalam div yang tumpah keluar dari bagian bawah div. Tidak ada perbaikan ketinggian yang saya coba, tetapi saya menemukan perbaikan yang aneh untuk itu, dan itu adalah meletakkan paragraf di bagian bawah div dengan hanya satu periode di dalamnya. Kemudian gaya "warna" teks menjadi sama dengan latar belakang wadah. Bekerja dengan baik sesukamu dan tidak perlu javascript. Ruang tanpa putus tidak akan berfungsi - gambar transparan juga tidak.
Rupanya itu hanya perlu untuk melihat bahwa ada beberapa konten di bawah meja untuk meregang untuk menampungnya. Saya ingin tahu apakah ini akan bekerja untuk orang lain.
Ini adalah jenis hal yang membuat perancang menggunakan tata letak berbasis tabel - jumlah waktu yang saya habiskan untuk mencari tahu hal ini dan membuatnya kompatibel lintas-browser membuat saya gila.
sumber
Saya mencoba ini dan itu berhasil
sumber
Jika Anda menggunakan jQuery UI, mereka sudah memiliki kelas karya yang hanya menambah pesona
<div>
di bagian bawah dalam div yang ingin Anda kembangkanheight:auto;
kemudian tambahkan nama kelas ui-helper-clearfix atau gunakan atribut gaya ini dan tambahkan seperti di bawah ini :tambahkan jQuery UI class ke div yang jelas, bukan div yang ingin Anda kembangkan.
sumber
Saya tahu ini adalah jenis utas lama, namun, ini dapat dicapai dengan
min-height
properti CSS secara bersih, jadi saya akan meninggalkan ini di sini untuk referensi di masa mendatang:Saya membuat biola berdasarkan OP yang diposting kode di sini: http://jsfiddle.net/U5x4T/1/ , saat Anda menghapus dan menambahkan divs di dalam, Anda akan melihat bagaimana wadah memperluas atau mengurangi ukuran
Hanya 2 hal yang Anda butuhkan untuk mencapai ini, tambahan untuk kode OP adalah:
* Melimpah di wadah utama (diperlukan untuk div mengambang)
* min-height css property, info lebih lanjut tersedia di sini: http://www.w3schools.com/cssref/pr_dim_min-height.asp
sumber
Tampilan yang ditambahkan: sebaris dengan div dan itu tumbuh otomatis (bukan barang gulir) ketika konten tinggi bertambah besar maka tinggi div yang diatur 200px
sumber
Anda dapat menggunakan Layout Kotak CSS . Dukungan agak luas saat ini: periksa di caniuse .
Ini adalah contoh jsfiddle. Juga contoh dengan banyak hal teks.
Kode HTML:
Kode CSS:
sumber
Saya mencoba hampir semua saran yang tercantum di atas dan tidak ada yang berhasil. Namun, "display: table" melakukan trik untuk saya.
sumber
Tidak perlu menggunakan banyak CSS, cukup gunakan bootstrap, lalu gunakan:
untuk div yang perlu diisi.
Anda bisa mendapatkan bootstrap dari sini
sumber