html - 为什么 html 元素不占据整个浏览器视口(viewport)?

标签 html css

我一直在做一个网站。许多人声称 html 元素扩展到整个视口(viewport)。当我编写这样的代码时:

<!doctype html>
<html>
<head>
<style>
html{
    border:1px solid red;
}
</style>

<meta charset="utf-8">
<title>Test</title>
</head>

<body>
Hi
</body>
</html>

边框仅出现在屏幕顶部的“嗨”字样处。 html 不是应该默认适合浏览器中的整个屏幕吗?

最佳答案

尽管是根元素,html 在 CSS 方面没有特殊属性;它是正常流程中的常规 block 盒,默认情况下 block 盒没有固有高度。默认高度为autospec 中描述了如何计算 auto 的具体细节, 但基本上对于流入 block 框来说,这意味着只要它们的内容需要那么高,仅此而已。这同样适用于 body 元素。

请注意,如果您为 html 指定背景颜色,该背景颜色将传播或“渗入”到整个视口(viewport),尽管 html 的高度不会改变.这种行为是有意的(背景也可以以类似的方式从 body 传播到 html);请参阅我对这些相关问题的回答以获取解释:

另请注意,您期望的行为,即

Isn't html supposed to default to fit the entire screen in a browser?

确实适用于 quirks 模式和非常旧版本的 IE(早于 6);主要是由于对定义不明确的 Web 标准的遵守不力(这是发布原始 CSS2 推荐的时间,而 CSS 本身仍处于起步阶段)。也就是说,htmlbody 元素在 quirks 模式下确实都是视口(viewport)高度的 100%,而上述 htmlbody 默认内容高度仅适用于标准模式。

关于html - 为什么 html 元素不占据整个浏览器视口(viewport)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23599919/

相关文章:

javascript - 在 javascript 中获取多个文件的文件大小

eclipse 中的 CSS 图像路径

javascript - CSS:环绕选框

css - 如何删除 h1 和内部 a 之间的小空间

html - 将按钮移动到屏幕的右侧

javascript - 将 div 内的内容复制到变量

javascript - JS : Load User Images From Personal Drive

html - 在CSS中与 parent 和 child 一起徘徊

html - IE8.0中窗体背景样式不随窗体扩展

php - 将 HTML 文本转换为 Leet (1337) Speak with XPath