Хотя ответ Гуффы работает во многих ситуациях, в некоторых случаях вы можете не захотеть, чтобы левая и / или правая часть отступа была родительской для центрального элемента div. В этих случаях вы можете использовать контекст форматирования блока по центру и перемещать делители отступов влево и вправо. Вот код
HTML:
<div class="container">
<div class="left"></div>
<div class="right"></div>
<div class="center"></div>
</div>
CSS:
.container {
width: 100px;
height: 20px;
}
.left, .right {
width: 20px;
height: 100%;
float: left;
background: black;
}
.right {
float: right;
}
.center {
overflow: auto;
height: 100%;
background: blue;
}
Мне кажется, что эта иерархия элементов более естественна по сравнению с вложенными вложенными элементами div и лучше отражает то, что находится на странице. Из-за этого границы, отступы и поля могут быть применены ко всем элементам (как правило: эта «естественность» выходит за рамки стиля и имеет последствия).
Обратите внимание, что это работает только для элементов div и других элементов, которые совместно используют свойство «по умолчанию заполнять 100% ширины». Входные данные, таблицы и, возможно, другие потребуют от вас обернуть их в контейнерный блок и добавить немного больше CSS для восстановления этого качества. Если вам не повезло оказаться в такой ситуации, свяжитесь со мной, и я откопаю css.
jsfiddle здесь: jsfiddle.net / RgdeQ
Наслаждайтесь!