HTML body元素是否有padding属性?

时间:2018-01-04 20:30:01

标签: css

参考Eric Meyer的重置css,它会为paddinghtml元素设置body。但是我在文档中找不到htmlbody标记具有这些属性的位置?我犯了错误吗?

/* v1.0 | 20080212 */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
 margin: 0;
 padding: 0;
 border: 0;
 outline: 0;
 font-size: 100%;
 vertical-align: baseline;
 background: transparent;
}

3 个答案:

答案 0 :(得分:1)

是的,通过css。我不知道在哪里可以找到适当的文档,但是几个开发人员在教程中使用了这个属性。 例如:https://html.com/attributes/body-topmargin/

答案 1 :(得分:0)

你绝对可以在body或html上应用填充和其他css属性。但要小心,因为您将更改整个页面的布局。

答案 2 :(得分:0)

这个问题比起初看起来更有趣。我猜你真正想要的是获得上述元素是块级的证据,以便可以正确应用填充和特别是边距。

好吧,让我们开始吧。在MDN上<html><body>未在相应的inline - 和block级元素列表中提供。如果我们转到html5 spec,我们可以了解到<body>的内容模型是流内容(大致对应于html4&#34;块级&#34;类别如MDN writes ,请参阅下面的@Alohci评论)和<html>的内容模型包含

  

头元素后跟一个body元素。

现在让我们转到CSS2 spec。它定义了块级元素(框),如下所示:

  

块级元素是源文档的那些视觉上以块格式化的元素(例如段落)。 &#39;显示&#39;以下值property使元素块级:&#39;阻止&#39; ,&#39; list-item&#39;和&#39; table&#39;。

通常,块级元素参与块格式化上下文,此fact允许我们设置边距。现在我们需要从技术上理解<html><body>块级元素的用途。嗯,这非常简单 - 所有现代浏览器都定义了所谓的用户代理样式表&#34;在哪里可以轻松找到:

body {display: block;}
html {display: block;}

例如,在Mozilla Firefox中,您可以通过

获取这些样式
view-source:resource://gre-resources/html.css 

在Google Chrome浏览器中,可以在“开发人员工具”的“样式”标签中找到这些行。

所以,回答你的问题,填充,特别是边距可以应用于<html><body>元素,因为它们属于html5流内容内容模型(html4&#34;块级& #34;类别)通过标准并确保所需的行为并避免一些怪癖,他们明确地设置在&#34;用户代理样式表&#34;通过display: block;成为块级元素。

<强> PS 即可。这是我在快速浏览规格后得到它的方式。我的解释可能包含不准确之处。如果您发现了一个 - 请随意在评论部分进行更正。