默认情况下,Chrome正文和html高度为100%
假设您希望内容占据视口高度的100%。您过去必须将默认情况下,Chrome正文和html高度为100%,html,css,google-chrome,Html,Css,Google Chrome,假设您希望内容占据视口高度的100%。您过去必须将html和body元素的高度设置为100%。通过这种方式,您还可以给出主体元素百分比高度的直接后代,如下所示: <head> <style> html, body { height: 100% } body { margin: 0; } header, footer { height: 10% } main { height: 80% } <style> </hea
html
和body
元素的高度设置为100%
。通过这种方式,您还可以给出主体
元素百分比高度的直接后代,如下所示:
<head>
<style>
html, body { height: 100% }
body { margin: 0; }
header, footer { height: 10% }
main { height: 80% }
<style>
</head>
<body>
<header>Intro</header>
<main>The Main Stuff</main>
<footer>Additional Details</footer>
</body>
html,正文{高度:100%}
正文{页边距:0;}
页眉、页脚{高度:10%}
主{高度:80%}
简介
主要内容
其他细节
在Chrome中设置直接子代的百分比高度不再需要html,body{height:100%}
声明。然而,Firefox中仍然需要它
这是2月初Chrome最新更新中的一个bug吗?或者默认情况下,高度
现在设置为100%
我只是想澄清一下,我不是在问如何实现基于百分比的布局。我更想问的是Chrome对
body
和html
元素默认高度的实现。对于新手开发人员来说,这可能会非常混乱,他们可能会认为html
和body
不需要明确定义高度,如果他们希望body
的直接后代具有基于百分比的高度。我不能说是否存在缺陷,但为了确保元素占据视口高度的100%,您应该真正使用100vh
:
html, body {
height: 100vh;
}
基于百分比的高度始终相对于直接父级。由于没有
的父级,您希望它的默认高度为0px。一些浏览器可能会以不同的方式解释如何处理
的父项,因此对
标记使用vh
测量值是最安全的
请注意,您可以在任何元素上使用vh
单元,而不仅仅是
和
希望这有帮助 我不能说是否存在bug,但为了确保元素占据视口高度的100%,您应该真正使用
100vh
:
html, body {
height: 100vh;
}
基于百分比的高度始终相对于直接父级。由于没有
的父级,您希望它的默认高度为0px。一些浏览器可能会以不同的方式解释如何处理
的父项,因此对
标记使用vh
测量值是最安全的
请注意,您可以在任何元素上使用vh
单元,而不仅仅是
和
希望这有帮助 在您提供的代码中,
html
和body
占据了页面高度的100%,因为没有doctype
声明。如果未提供doctype
,大多数浏览器将恢复为“怪癖”模式
如果添加HTML5 doctype(
),您会发现主体和html元素在没有明确高度的情况下不再占据整个视口。在您提供的代码中,html
和body
占据了页面高度的100%,因为没有doctype
声明。如果未提供doctype
,大多数浏览器将恢复为“怪癖”模式
如果添加HTML5 doctype(
),您会发现如果没有明确的高度,主体和html元素将不再占据整个视口。这实际上取决于浏览器。如果必须使用百分比高度,最安全的方法是在父对象上定义高度。否则,一个更简单的选择就是main{height:80vh;}
和header,footer{height:10vh;}
。这实际上取决于浏览器。如果必须使用百分比高度,最安全的方法是在父对象上定义高度。否则,一个更简单的选择就是main{height:80vh;}
和header、footer{height:10vh;}
。如果使用的是视口百分比单位,则不需要在html
和body
上指定高度。你可以直接将它应用到你的内容元素上(就像使用像素高度一样)。没错,而且我的答案不是很清楚。我刚刚更新了答案,还提到:)如果使用视口百分比单位,则不需要在html
和body
上指定高度。你可以直接将它应用到你的内容元素上(就像使用像素高度一样)。没错,而且我的答案不是很清楚。我刚刚更新了答案,还提到:)