对于那些来这里寻求更容易理解的答案(甚至包括代码示例)的人,这个答案(从这里复制)适合您。
不需要JavaScript 或明确的像素值(例如100px
),只需纯 CSS 和百分比即可。
如果您的 div 只是自己坐在那里,height: 50%
则意味着身体高度的 50%。通常,body 的高度是零,没有任何可见的内容,所以其中 50% 只是,嗯,零。
这是解决方案(基于this)(取消注释background
以获得填充的可视化):
/* Makes <html> take up the full page without requiring content to stretch it to that height. */
html
{
height: 100%;
/* background: green; */
}
body
{
/*
100% the height of <html> minus 1 multiple of the total extra height from the padding of <html>.
This prevents an unnecessary vertical scrollbar from appearing.
*/
height: calc(100% - 1em);
/* background: blue; */
}
/* In most cases it's better to use stylesheets instead of inline-CSS. */
div
{
width: 50%;
height: 50%;
background: red;
}
<div></div>
上面写的是仍然会有通常的填充。您可以将红色的尺寸设置div
为100%
并且仍然可以看到每一侧/末端的填充。如果您不想要此填充,请使用此填充(虽然看起来不太好,但我建议您坚持第一个示例):
/* Makes <html> take up the full page without requiring content to stretch it to that height. */
html, body
{
height: 100%;
}
/* You can uncomment it but you wouldn't be able to see it anyway. */
/*
html
{
background: green;
}
*/
body
{
margin: 0;
/* background: blue; */
}
/* In most cases it's better to use stylesheets instead of inline-CSS */
div
{
width: 50%;
height: 50%;
background: red;
}
<div></div>