С #sidebar
имеет left-margin: 23.5%;
, он перемещается влево, когда вы уменьшаете окно, потому что оно всегда будет 23,5% от ширины окна. Так что, если ваше окно шириной 1000 пикселей, #sidebar
div margin-left
будет 235px, и это число уменьшается с шириной окна (что делает его похожим на то, что div перемещается влево).
#center
DIV перемещается вниз, так как ширина окна меньше, чем значение margin-left
+ ширина #sidebar
+ ширина #center
. Когда окно слишком узкое, divs перестраиваются так, чтобы они соответствовали (например, как текст в текстовом поле переходит к новой строке, когда заканчивается пробел).
Если вы хотите сохранить макет, как это, когда окно становится меньше, есть два простых вещей, которые вы можете сделать:
Сделать все ваши дивы ширина процент: Если ваш #sidebar
имеет margin-left:25%; width:20%;
и ваш #center
div имеет width:50%
, оба divs (и поля) будут меняться, когда экран сжимается (это один из способов Responsive Web Design работ). Here is an example on jsFiddle.
Поместите все в контейнер DIV: Поскольку звуки, которые вы хотите иметь свой заголовок, боковую панель и содержимое в одном блоке, можно обернуть все эти элементы в контейнере DIV. Вы должны изменить свой CSS немного, но базовая реализация будет выглядеть примерно так:
CSS
#container {
width: 1000px;
margin-left:auto;
margin-right:auto;
}
#header {
background-color:red;
width:auto;
height:250px;
}
#sidebar {
height:800px;
width:300px;
background-color:#CCFFFF;
float:left;
}
#center {
height:800px;
width:auto;
background-color:green;
border:1px solid black
float:left;
}
HTML
<div id=#container">
<div id="#header">header content</div>
<div id="#sidebar">sidebar content</div>
<div id="#center">center content</div>
</div>
Here is a jsFiddle with this code.
Поскольку контейнер div имеет заданную ширину, вам не нужно беспокоиться о t он имеет ширины дочерних элементов.
Вы пробовали twitter bootstrap, они заботятся о многих проблемах масштабирования для вас. – user65439
Не могли бы вы сделать JSFiddle? http://jsfiddle.net/ –