我对大多数CSS重置样式表(例如,Eric Meyer's,Yahoo重置表)背后的原因感到迷茫。他们基本上都是这样做的。但是,选择页面上每个元素的最有效方法是什么?
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, 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,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video { margin: 0; padding: 0; }
VS
* { margin: 0; padding: 0 }
我可以直观地说它是后者,然而,所有这些重置表都使用前者。
答案 0 :(得分:2)
我同意星号是最有效的。然而,经过一些研究,我在这个网站上发现了另一篇关于使用星号有多害的帖子。
答案 1 :(得分:0)
如果你真的想要清除所有所有元素的所有边距,那么执行* {}会不会更高效,因为它不需要在css规则上执行那么多的检查(因为你只指定一个规则而不是20或30个规则(每个元素一个),并且在解析你的html以影响这个规则时,因为它不需要检查规则是否适用,因为它是*所以它会自动影响它找到的每个元素或节点吗?
答案 2 :(得分:0)
这不是性能问题,而是兼容性问题。您会注意到该列表中不包含所有 HTML元素。值得注意的是,不包括radio
和textarea
等表单元素。这是因为根据平台的不同,填充和边距应用于这些元素的方式不一致,因此最好在这些情况下保留默认值。我发现this forum thread包含了有关该问题的一些讨论的链接。