Saya memiliki pembungkus utama div yang diatur lebar 100%. Di dalam itu saya ingin memiliki dua divs, satu yang lebar tetap dan yang lainnya mengisi sisa ruang. Bagaimana cara mengapung div kedua untuk mengisi sisa ruang. Terima kasih atas bantuannya.
241
Jawaban:
Ada banyak cara untuk melakukan apa yang Anda minta:
Menggunakan properti CSS
float
:Menggunakan properti CSS
display
- yang dapat digunakan untuk membuatdiv
tindakan sepertitable
:Ada lebih banyak metode, tetapi keduanya adalah yang paling populer.
sumber
CSS3 memperkenalkan kotak fleksibel (alias. Kotak fleksibel) yang juga dapat mencapai perilaku ini.
Cukup menentukan lebar div pertama, dan kemudian memberikan kedua
flex-grow
nilai1
yang akan memungkinkan untuk mengisi lebar tersisa induk.Demo jsFiddle
Perhatikan bahwa kotak fleksibel tidak kompatibel dengan browser lama, tetapi merupakan pilihan bagus untuk menargetkan browser modern (lihat juga Caniuse dan MDN ). Panduan komprehensif yang hebat tentang cara menggunakan kotak fleksibel tersedia di Trik CSS .
sumber
Saya tidak tahu banyak tentang strategi desain HTML dan CSS, tetapi jika Anda sedang mencari sesuatu yang sederhana dan yang akan sesuai dengan layar secara otomatis (seperti saya), saya percaya solusi yang paling lurus ke depan adalah membuat divs berperilaku seperti kata-kata dalam sebuah paragraf. Coba sebutkan
display: inline-block
Anda mungkin atau mungkin tidak perlu menentukan lebar DIVs
sumber
display:flex
adalah solusi terbaik, tetapi saya pikirinline-block
ini juga sangat baik karena berfungsi pada lebih banyak browser. Ngomong-ngomong, Anda mungkin perlu membungkus kedua div dengan a<div style="white-space:nowrap">
untuk mencegah putusnya perubahan ukuran.inline-block
kode.Anda dapat menggunakan kisi-kisi CSS untuk mencapai hal ini, ini adalah versi jangka panjang untuk tujuan ilustrasi:
Atau metode yang lebih tradisional menggunakan float dan margin.
Saya telah menyertakan warna latar belakang dalam contoh ini untuk membantu menunjukkan di mana segala sesuatunya berada - dan juga apa yang harus dilakukan dengan konten di bawah area mengambang.
Jangan menempatkan gaya Anda sejajar dalam kehidupan nyata, ekstrak ke dalam style sheet.
sumber
Berikan div pertama float kiri dan diperbaiki dengan, div kedua 100% lebar float kiri. Itu harus melakukan trik. Jika Anda ingin menempatkan item di bawahnya, Anda perlu jelas: keduanya pada item yang ingin Anda tempatkan di bawah
sumber
Ini akan kompatibel lintas browser. Tanpa margin-kiri Anda akan mengalami masalah dengan konten berjalan jauh ke kiri jika konten Anda lebih panjang dari sidebar Anda.
sumber
Jika Anda tidak menandai IE6, maka apung yang kedua
<div>
dan berikan margin yang sama dengan (atau mungkin sedikit lebih besar dari)<div>
lebar tetap pertama .HTML:
CSS:
Margin memperhitungkan kemungkinan bahwa 'sisa ruang'
<div>
mungkin mengandung lebih banyak konten daripada 'lebar tetap'<div>
.Jangan beri latar belakang lebar tetap; jika Anda perlu melihat ini sebagai 'kolom' yang berbeda maka gunakan trik Kolom Faux .
sumber