【发布时间】:2013-05-11 15:41:36
【问题描述】:
给定以下 HTML 布局:
<body>
<header class="site-header">
</header>
<section class="site-section">
</section>
<footer class="site-footer">
</footer>
</body>
我想为页眉、节和页脚使用 100% 的浏览器高度。但是,实现这一点没有问题:
html, body { height:100%; }
.site-header { height:10%; }
.site-section { height:80%; }
.site-footer { height:10%; }
我的问题是,如果我想为body 的每个孩子使用边距,这将不起作用:
body > * { margin:1%; }
无论是否有边距 - 网站应始终使用 100% 的浏览器高度。
编辑:
改用白色边框似乎更适合我。然而,同样的问题仍然存在。甚至可以用百分比指定border-width?
【问题讨论】:
-
您真的想在页眉和页脚中使用百分比吗?如果您使用固定定位作为下面的一个答案,您可以实现 100% 的页面高度,但我无法想象您希望页眉和页脚增加高度的 UX。
-
请记住,CSS 中的垂直边距和内边距是根据元素宽度而不是高度计算的,因此您将无法通过所需的边距宽度从高度中减去百分比,并希望这一切都合适。但是,您可以尝试 (1) 为所有页眉、节和页脚内容使用额外的内部 div,并为父元素指定填充或 (2) 使用边框宽度和框大小。 p/s:尝试透明边框;)