为什么CSS重置不使用'*'来覆盖所有元素?

Aar*_*ken 12 css css-reset

例如,Meyer重置有一长串元素1,我相信可以用一个*

我见过一些用法:

* {
   margin: 0;
   padding: 0;
 }
Run Code Online (Sandbox Code Playgroud)

但更多"高级"重置似乎与明确说明标签有关.

我没有看到覆盖在标签列表中唯一的元素覆盖(我相信)用*input,buttonselect-the埃里克迈耶复位,其实,没有出现真正具有这些元素涉及.如果避免重置这些元素就是问题......为什么不呢?浏览器显然并不都显示相同的表单元素.


1, 如果你很好奇.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

thi*_*dot 15

你猜对了 - 原因是form元素.

如果你设置border: 0为例如input,它将失去本机样式.

例如:http://jsfiddle.net/nrB6N/

并且,没有办法恢复默认样式.


red*_*red 8

*实际上,对于性能来说真的很糟糕(在小型网站上并不重要,但请考虑对5000多个HTML元素的影响).定位特定元素总是更快,更有效.选择使用ID或CLASS时,请记住这一点.算上今天不仅仅是常见的JavaScript,你会发现具有ID或精确CSS语句的目标元素可以提高性能.

http://code.google.com/speed/page-speed/docs/rendering.html#UseEfficientCSSSelectors

PS.除了速度之外,它还会影响input元素,在*border,padding和margin 0之后变得非常难以设置样式,以便它们在浏览器中看起来相同,尤其是在IE中.阅读更多:http://www.christianmontoya.com/2007/02/01/css-techniques-i-use-all-the-time/

  • 找到了,并添加到我的回复中. (2认同)