您在寻找固定边框还是动态边框?您的代码的问题是 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/