Solusi terkini (Oktober 2014): siap untuk tata letak yang lancar
Pengantar:
Solusi ini bahkan lebih sederhana daripada yang disediakan oleh Leigh. Ini sebenarnya berdasarkan itu.
Di sini Anda dapat melihat bahwa elemen tengah (dalam kasus kami, dengan "content__middle"class) tidak memiliki properti dimensi yang ditentukan - tidak ada lebar, atau padding, atau properti terkait margin sama sekali - tetapi hanya overflow: auto;(lihat catatan 1).
Keuntungan besarnya adalah sekarang Anda dapat menentukan a max-widthdan a min-widthpada elemen kiri & kanan . Yang luar biasa untuk tata letak yang lancar .. maka tata letak responsif :-)
catatan 1: versus jawaban Leigh di mana Anda perlu menambahkan properti margin-left& margin-rightke "content__middle"kelas.
Kode dengan tata letak non-fluid:
Di sini elemen kiri & kanan (dengan kelas "content__left"dan "content__right") memiliki lebar tetap (dalam piksel): karenanya disebut tata letak non-fluid.
Demo Langsung di http://jsbin.com/qukocefudusu/1/edit?html,css,output
<style>
.content {
width: 100%;
}
.content__left {
width: 100px;
float: left;
background-color: #fcc;
}
.content__middle {
background-color: #cfc;
overflow: auto;
}
.content__right {
width: 100px;
float: right;
background-color: #ccf;
}
</style>
<div class="content">
<div class="content__left">
left div<br/>left div<br/>left div<br/>left div<br/>left div<br/>left div<br/>
</div>
<div class="content__right">
right div<br/>right div<br/>right div<br/>right div<br/>
</div>
<div class="content__middle">
middle div<br/>middle div<br/>middle div<br/>middle div<br/>middle div<br/>middle div<br/>middle div<br/>middle div<br/>middle div<br />bit taller
</div>
</div>
Kode dengan tata letak fluida:
Di sini elemen kiri & kanan (dengan kelas "content__left"dan "content__right") memiliki lebar variabel (dalam persentase) tetapi juga lebar minimum dan maksimum: maka disebut tata letak fluida.
Demo Langsung dalam tata letak yang lancar dengan max-widthproperti http://jsbin.com/runahoremuwu/1/edit?html,css,output
<style>
.content {
width: 100%;
}
.content__left {
width: 20%;
max-width: 170px;
min-width: 40px;
float: left;
background-color: #fcc;
}
.content__middle {
background-color: #cfc;
overflow: auto;
}
.content__right {
width: 20%;
max-width: 250px;
min-width: 80px;
float: right;
background-color: #ccf;
}
</style>
<div class="content">
<div class="content__left">
max-width of 170px & min-width of 40px<br />left div<br/>left div<br/>left div<br/>left div<br/>left div<br/>left div<br/>
</div>
<div class="content__right">
max-width of 250px & min-width of 80px<br />right div<br/>right div<br/>right div<br/>right div<br/>
</div>
<div class="content__middle">
middle div<br/>middle div<br/>middle div<br/>middle div<br/>middle div<br/>middle div<br/>middle div<br/>middle div<br/>middle div<br />bit taller
</div>
</div>
Dukungan Browser
Diuji di BrowserStack.com pada browser web berikut:
- IE7 ke IE11
- Ff 20, Ff 28
- Safari 4.0 (windows XP), Safari 5.1 (windows XP)
- Chrome 20, Chrome 25, Chrome 30, Chrome 33,
- Opera 20