Chrome body 和 html 高度默认为 100%

Kev*_*han 0 html css google-chrome

假设您希望您的内容占据100%视口的高度。您过去必须将htmlbody元素的高度设置为100%。这样,您也可以给出body元素百分比高度的直接后代,如下所示:

<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>
Run Code Online (Sandbox Code Playgroud)

html, body { height: 100% }不再需要在 Chrome 中为直接后代设置百分比高度的声明。但是,它在 Firefox 中仍然是必需的。

这是 2 月初发布的 Chrome 最新更新中的错误吗?或者height现在100%默认设置为?

澄清一下,我不是在问如何实现基于百分比的布局。我更多地询问 Chrome 对bodyhtml元素的默认高度的实现。对于新手开发人员来说,这可能会非常混乱,他们可能会认为html并且body不需要明确定义的高度,如果他们希望 的直接后代body具有基于百分比的高度。

Sid*_*ney 5

在您提供的代码中,htmlbody占据页面高度的 100%,因为没有doctype声明。如果没有doctype提供,大多数浏览器将恢复到“怪癖”模式。

如果添加 HTML5 doctype ( <!DOCTYPE html>),您应该会发现 body 和 html 元素不再占据整个视口而没有明确的高度。