* { margin: 0; padding: 0; }
还是有效的CSS?它是用来做什么的?在不同的浏览器/版本上可移植吗?
* { margin: 0; padding: 0; }
还是有效的CSS?它是用来做什么的?在不同的浏览器/版本上可移植吗?
这是有效的CSS。它选择每个元素并重置默认的边距和内边距。人们使用这样做的原因是为了使他们的网站布局在不同的浏览器/版本中更加一致,因为每个浏览器都有自己的默认样式表。如果您不使用此声明或为每个元素指定边距/填充,则每个浏览器将为该元素使用自己的默认边距/填充,并且页面将在不同的浏览器中呈现不一致。
通用选择器在Internet Explorer 5.x的Windows和Macintosh版本中得到支持,以及IE 4.5的Mac版本中也得到支持,还在Opera 3.6中得到支持。它也在Netscape 6预览版1上得到支持,在Preview Release 3 of Opera 4 for Windows中也得到支持。
有时候你会看到:
html * { margin: 0; padding: 0; }
或者
body * { margin: 0; padding: 0; }
在各种浏览器中结果略有不同,这是需要注意的。
此外,还有一些选择性的重置,并不包括每个 HTML 元素 - 请参阅这篇文章 比较 CSS 重置的种类。
它不能算作一个黑客技巧,因为它是有效的标准 CSS。
这是:
*
是通用选择器。在CSS规范中,通用选择器的特异性为0000,这意味着每个其他选择器都具有更高的优先级。因此,这是一种“重置”所有边距的方法,以便任何其他规则都能够覆盖。
请记住,这种方法会使您的列表变得混乱。没有边距和填充,列表项不再缩进。有些规则确实很有益处,因为它们可以为通常不需要样式的东西添加样式。
通用选择器选择页面上的每个元素。每个小的div
,每个小的li
等等。事实上,它甚至选择了不是块级元素的东西,如a
和span
和head
。在许多情况下,这是过度的,在大型页面上可能效率低下。
body
和 h1
的填充和边距设置为零。)这是有效的CSS,但从技术上讲,它可能被视为一种hack。
基本上,它用于重置HTML中每个元素的边距和填充,因为不同的浏览器有时具有不同的默认值。使用此重置将确保所有元素从一个共同点开始。
这既是有效的,也是一种技巧。然而,它不是特定于浏览器的。这个术语叫做“CSS重置”
正如tf111所解释的那样,这个想法是为了摆脱所有浏览器中不同的边距和填充的特定设置。