Сучасне рішення (жовтень 2014 р.): Готовий до компонування рідини
Вступ:
Це рішення навіть простіше, ніж запропоноване Leigh. Це фактично засновано на ньому.
Тут ви можете помітити, що середній елемент (у нашому випадку з "content__middle"класом) не має жодної властивості розмірності - ні ширини, ні заповнення, ні властивості, пов’язаної з полями - а лише overflow: auto;(див. Примітку 1).
Великою перевагою є те, що тепер ви можете вказати a max-widthта a min-widthдля лівого та правого елементів . Що є фантастичним для рідинних макетів. Отже, адаптивний макет :-)
примітка 1: проти відповіді Лі, де вам потрібно додати властивості margin-left& margin-rightдо "content__middle"класу.
Код із нерідинною компоновкою:
Тут лівий і правий елементи (з класами "content__left"та "content__right") мають фіксовану ширину (у пікселях): отже, це називається не текучим макетом.
Демонстрація в реальному часі на 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>
Код з розкладкою рідини:
Тут лівий та правий елементи (з класами "content__left"та "content__right") мають змінну ширину (у відсотках), а також мінімальну та максимальну ширину: отже, це називається текучим розташуванням.
Демонстрація в реальному часі в розкладці з max-widthвластивостями 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>
Підтримка браузера
Перевірено на BrowserStack.com у таких веб-браузерах:
- IE7 - IE11
- Ff 20, Ff 28
- Safari 4.0 (Windows XP), Safari 5.1 (Windows XP)
- Chrome 20, Chrome 25, Chrome 30, Chrome 33,
- Опера 20