为什么要在元素上设置零保证金?

时间:2014-07-01 09:29:52

标签: css

在CSS样式表中,我经常看到这条规则:

html, body {
  margin  : 0px;
  padding : 0px;
}

为什么要在<html>元素上设置零保证金?为什么不在<body>元素上?

相关问题:Does the <html> element have a default margin or padding in any browser, since normalize.css doesn't reset it?

6 个答案:

答案 0 :(得分:1)

如果在这些元素上没有设置样式,浏览器有自己的边距和填充的默认样式。将这些元素重置为0将始终保持相同。

答案 1 :(得分:1)

根据W3s默认样式表(http://www.w3.org/TR/CSS2/sample.html),html标签不应该有任何边距或填充,因此不需要重置html标签上的边距或填充。

但我想可能会有一些浏览器没有遵循这些指导原则,因此需要重置html标签。

我猜测人们因为旧习惯而将重置为html标签。

答案 2 :(得分:0)

如果您根据不同的浏览器重置默认的身体边距(5或7px),请将其设为正确。重置正文,有时(像PSP浏览器)甚至html都有默认的边距,这意味着身体不够。但是现在主要的原因是当你想要一个完全重置时,你只是为了你的代码中的纯粹清除而行动,如果你只重置身体,人们会说嘿但是为什么html没有被清理,所以只需清理html所以现在你完全确定你有一个0的余量,任何看到你的代码的编码器都会说ok,而且html是0所以它在0并且它的上帝该死的0:)

答案 3 :(得分:0)

通过删除浏览器设置的默认样式,您可以获得实现样式的“干净利落”。实际上大多数人都重置了浏览器设置的“全部”默认样式,但我想你知道的。 :) 我总是使用完全重置 - 以确保我以后不必使用默认样式。

规范化css http://necolas.github.io/normalize.css/

重置css(我用这个) http://meyerweb.com/eric/tools/css/reset/

答案 4 :(得分:-1)

您可以在CSS中显示或设置任何HTML元素的样式。理论上也可以显示HTML元素本身。

另一个原因是继承。许多值可以继承,也可以手动继承。如果为HTML元素设置全局边距,则可以继承该值,例如在BODY元素上。

显示TITLE元素内容的示例:

head, title {
    display: block;
}

http://jsfiddle.net/feeela/YmamL/

但总而言之,你应该不再使用reset.css 了。 使用规范化样式表仅将那些不同的值从浏览器设置为。最着名的normalize.css currently is probably that of Nicolas Gallagher。这个也不会重置HTML元素的边距或填充。

答案 5 :(得分:-1)

如果我们不这样做,每个浏览器都有一个默认的margin值,有时当我们在html中编码时,我们不使用<html><body>这些css声明就像一个catch :)