Güncel çözüm (Ekim 2014): akışkan düzenlere hazır
Giriş:
Bu çözüm, tarafından sağlanandan daha basittir Leigh. Aslında buna dayanıyor.
Burada, ortadaki elemanın (bizim durumumuzda, "content__middle"sınıfla birlikte) herhangi bir boyutsal özelliğe sahip olmadığını fark edebilirsiniz - genişlik, dolgu veya kenar boşluğu ile ilgili hiçbir özellik yoktur - sadece bir overflow: auto;(not 1'e bakın).
En büyük avantajı, artık sol ve sağ öğeleriniz için a max-widthve a belirtebilmenizdirmin-width . Akıcı düzenler için harika olan ... dolayısıyla duyarlı düzen :-)
not 1: margin-left& margin-rightözelliklerini "content__middle"sınıfa eklemeniz gereken Leigh'in cevabına karşı .
Değişken olmayan düzene sahip kod:
Burada (sınıfları ile sağ ve sol elemanları "content__left"ve "content__right") bir olması sabit genişlik (piksel): dolayısıyla adı sıvı olmayan bir düzen.
Http://jsbin.com/qukocefudusu/1/edit?html,css,output'ta Canlı Demo
<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>
Değişken yerleşimli kod:
Burada (sınıfları ile sağ ve sol elemanları "content__left"ve "content__right") bir olması değişken bir genişliğe (yüzde olarak), ancak, aynı zamanda, bir minimum ve maksimum genişliği: dolayısıyla sıvı düzeni olarak adlandırılan.
Http://jsbin.com/runahoremuwu/1/edit?html,css,outputmax-width özellikleriyle değişken bir düzende Canlı Demo
<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>
Tarayıcı Desteği
BrowserStack.com'da aşağıdaki web tarayıcılarında test edilmiştir:
- IE7 ila 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