为什么 HTML 正文背景颜色不遵守边距?

2023-12-05

根据w3,margin元素的透明:

Box-Model Diagram

我已经构建了一个非常基本的 HTML 页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
    <style>
        body {
            background-color: red;
        }
    </style>
</head>
<body></body>
</html> 

在 Chrome 中,检查员报告“body”的边距为 8px:

Picture of Chrome Inspector showing 8px margin

但在页面上,边距全是背景色! (请注意,我的书签栏和红色背景之间没有空间 - 我保证我没有滚动。

Picture showing no margin at all

那是怎么回事?


The CSS规范特殊情况吧。

根元素的背景变成了 画布并覆盖整个画布,锚定(对于 '背景位置')在同一点,如果它是 仅为根元素本身绘制。根元素不 再次绘制这个背景。

但是,对于 HTML 文档,我们建议作者指定 BODY 元素而不是 HTML 元素的背景。为了 根元素是 HTML“HTML”元素或 XHTML 的文档 计算出“透明”值的“html”元素 'background-color'和'none'用于'background-image',用户代理必须 而是使用从中计算出的背景属性值 元素的第一个 HTML“BODY”元素或 XHTML“body”元素子元素 为画布绘制背景,并且不得绘制背景 对于该子元素。这些背景也必须扎根于 与只为根部绘制相同的点 元素。

……大概是因为人们太习惯了<body background="#ff0000">来自糟糕的旧时光。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 HTML 正文背景颜色不遵守边距? 的相关文章