【发布时间】:2019-10-29 07:46:48
【问题描述】:
我找到了一种(hacky)方法,通过使用 CSS3 calc 属性,让 div 占据浏览器的整个视口,减去基于像素的边距(参见 fiddle):
html,
body {
height: 100%;
margin: 0;
overflow: hidden;
}
div {
background: linear-gradient(red, yellow);
height: calc(100% - 26px);
margin: 13px 0 0 13px;
width: calc(100% - 26px);
}
<body>
<div></div>
</body>
是否可以仅使用 CSS 2.1 属性做同样的事情?我知道大多数浏览器都支持 calc 已经有一段时间了,但它also looks like the most popular polyfills have their limitations。我一直在努力寻找更优雅的解决方案——例如,我不必用overflow:hidden 锁定超大视口。不使用 calc 或 vh / vw 单位似乎几乎是不可能的。
【问题讨论】:
-
您可以使用
absolute或fixed定位,将top、left、right和bottom设置为所需的边距大小,或者创建一个带有填充和填充的包装元素对两者都使用100%大小 -
calc()'s not hacky。这是 HTML 标准。