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-width
i a min-width
po 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-right
do "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-width
wł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