Вы ищете фиксированную границу или динамическую границу? Проблема с вашим кодом - это модель коробки W3C. В модели по умолчанию добавление, край и граница добавляются к размеру вашего элемента. Таким образом, в вашем коде, что вы действительно говорите, «сделайте поле 100%, а затем добавьте 10px значение границы».
Обычно легкое изменение было бы вручную переключить модель коробки, но, к сожалению, это свойство не играет хорошо с height: 100%
. Таким образом, у вас есть несколько вариантов:
1) Если вы ищете фиксированную границу, это хороший трюк: http://css-tricks.com/body-border/ 2) Если вам нужна динамические границы, вам нужно каким-то образом обойти дополнительную высоту на границе добавляет. Вот один из способов:
html,body { height:100%; padding: 0; margin: 0; }
#container {
min-height:100%;
border-right: 5px solid #000;
border-left: 5px solid #000;
position: relative; /* relative postion so we can absolutely position footer within it */
}
#header {
height: 100px;
border-top: 5px solid #000;
background-color: red;
}
#content { padding: 0 0 100px 0; } /*padding must be equal to the height of the footer*/
#footer {
height: 100px;
border-bottom: 5px solid #000;
background-color: blue;
position: absolute;
bottom: 0;
width: 100%; /* with absolute position, a width must be declared */
}
HTML
<div id="container">
<div id="header"></div>
<div id="content"></div>
<div id="footer"></div>
</div>
jsfiddle здесь: http://jsfiddle.net/Qw2cb/
Это не было в 2012 году. Отличный ответ tho –
Действительно я знаю. Думал, что это было бы полезно для кого-то другого! – daneczech