CSS重置问题

时间:2011-09-21 11:08:11

标签: css reset

Eric A. Meyer CSS重置定义了所有元素名称,例如:

/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

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;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

我的问题是,是否可以使用星形选择器而不是像上面那样定义所有元素?

*{
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

如果是,哪个更好用? 感谢。

3 个答案:

答案 0 :(得分:4)

由于侦听名称“所有元素名称”,因此您不应使用* - 请注意,不能inputselect或{ {1}}听,只是举几个例子。

答案 1 :(得分:3)

由于性能原因,您希望回避*,请参阅

答案 2 :(得分:1)

好吧,你们已经接受了一个答案,但是我想让你知道它是不是可以通过保证金来设置所有内容(*):0;填充:0;字体大小:100;等等:等;

除非你准备好重写你的重置一长串完整的html标记和可能性。

考虑<select><option>和其他<form>字段:它们会变得很小。

考虑<ul><li><ol><li>以及嵌套<ol><li><ol><li>:它们将全部笔直,垂直对齐并对齐为0.

考虑<small><sup><sub>和其他内联标记。它们看起来都一样(与css的意思相反)

我的回答是:不,这样做是不行的:* {margin:0;padding:0; /* ... */} 除非你不关心浏览器的DOM速度或者之后不得不处理后果你的视觉造型(Woups!表格字段都搞砸了,Woups!我的引用没有显示,Woups!段落看起来像其他任何东西,woups!我没有看到那个人来了,等等。)