Nowoczesne rozwiązanie (październik 2014): gotowe do płynnych układów
Wprowadzenie:
To rozwiązanie jest jeszcze prostsze niż to, które zapewnia Leigh. W rzeczywistości jest na nim oparty.
Tutaj możesz zauważyć, że środkowy element (w naszym przypadku z "content__middle"klasą) nie ma określonej właściwości wymiarowej - bez szerokości, wypełnienia ani właściwości związanych z marginesem - ale tylko overflow: auto;(patrz uwaga 1).
Ogromną zaletą jest to, że teraz możesz określić a max-widthi a min-widthpo lewej i prawej stronie elementów . Co jest fantastyczne w przypadku płynnych układów… stąd responsywny układ :-)
uwaga 1: w porównaniu z odpowiedzią Leigh, gdzie musisz dodać właściwości margin-left& margin-rightdo "content__middle"klasy.
Kod bez układu płynnego:
Tutaj lewy i prawy element (z klasami "content__left"i "content__right") mają stałą szerokość (w pikselach): stąd nazywany układem niepłynnym.
Demo na żywo na 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>
Kod z układem płynnym:
Tutaj lewy i prawy element (z klasami "content__left"i "content__right") mają zmienną szerokość (w procentach), ale także minimalną i maksymalną szerokość: stąd nazywany układem płynnym.
Live Demo w płynnym układzie z max-widthwłaściwościami 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>
Wsparcie przeglądarki
Testowane na BrowserStack.com w następujących przeglądarkach internetowych:
- IE7 do 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