Я не уверен, что это можно сделать без javascript, но я надеюсь, что у него есть решение. Рассмотрим эту скрипку: http://jsfiddle.net/PPeYH/Сохранение плавающих divs внутри ограничений страницы
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.content {
border: 1px solid;
min-height: 3em;
}
.container {
max-width: 600px;
margin: 0 auto;
overflow: hidden;
clear: both;
}
#placeholder-body {
position: relative;
border: 0;
}
.split-tile {
float: left;
}
.split-left {
width: 60%;
}
.split-left .content {
margin-left: auto;
margin-right: 0;
max-width: 360px;
}
.split-right {
width: 40%;
}
.split-right .content {
margin-left: 0;
margin-right: auto;
max-width: 240px;
}
<div><div class="content container">Header</div></div>
<div id="placeholder-body">
<div><div class="content container">Some content</div></div>
<div class="tile-1 split-tile split-left">
<div class="content">60% width.</div>
</div>
<div class="tile-2 split-tile split-right">
<div class="content">40%</div>
</div>
<div><div class="content container">Some content</div></div>
</div>
<div><div class="content container">Footer</div></div>
Структура вы видите здесь, это упрощенная версия структуры RWD. Нам нужен весь макет, чтобы он оставался внутри его границ. Если вы измените ширину браузера вверх или вниз, вы увидите, что разделители, отмеченные «60%» и «40%», не соблюдают границы остальных разделов.
«Почему бы вам не просто обернуть 60% и 40% div в контейнере?», Спросите вы. Ну, структура DOM, представленная здесь, выложена с использованием CMS в уже сложной системе. Для этого потребуется больше, чем просто рефакторинг. Мне придется жить, когда плитки выкладываются так, как они есть.
Так что мой вопрос в этом; есть ли способ достичь разделения 60/40 на средних divs таким образом, чтобы они сохраняли левый и правый края остальной части макета, используя ТОЛЬКО css?
UPDATE: Я не могу сдерживать # замещающие-тело к максимальной ширине либо, потому что мой дизайнер хочет, чтобы я полноширинный цвет фона для некоторых див в структуре.
Я считаю, что это нуждается в контейнере ... Его только если у вас есть ширина, равная любому%, отличному от 50:50, разделение между двумя полями всегда будет смещаться в сторону меньшей стороны по мере увеличения страницы. - за исключением того, что вы можете сделать решение Lolo и просто ограничить ширину всего до 600 – OGHaza
Да, я знаю. :(Но, к сожалению, я не могу создать контейнер для div, если я не создаю для него какое-то решение JS. Который я надеялся избежать. –