为什么我不能简单地重置:
* { margin: 0; padding: 0; font-size: 100% }
而不是:
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
margin:0;
padding:0;
border:0;
outline:0;
font-size:100%;
vertical-align:baseline;
background:transparent;
}
答案 0 :(得分:5)
首先,你可以。
回答这个问题:因为您可能不希望所有元素都包含指定的参数。例如,你没有输入,按钮等。
答案 1 :(得分:2)
可能因为类型选择器比通用选择器有更多specificity。
或者因为此CSS重置不希望匹配所有元素,例如input
s。
答案 2 :(得分:2)
将所有这些样式应用于所有元素会导致意外的样式。请查看以下文本框,下拉列表和textarea重置以及所有重置样式:
<input type="text" value="foo" />
<select>
<option>Foo</option>
<option>Bar</option>
</select>
<textarea rows="10" columns="30">foo</textarea>
非常裸露!
答案 3 :(得分:1)
使用CSS重置是一种快速实现设计良好起点的强大方法,可让您在编码时节省时间和杂乱。您应该找到通常想要重置的标签,而不是公然重置所有内容,并根据每个项目单独选择适用的默认值。
使用通配符重置
可以使用通配符CSS语句重置可能有也可能没有附加样式的每个HTML标记。虽然这很容易,但也可能产生不良影响。
通过从所有HTML标记中删除所有默认格式,您强制自己必须为这些标记创建自定义样式。记住,你可能只考虑div,span,ul,li和其他常见元素,完全忘记了abbr,pre和cite。
答案 4 :(得分:1)
这是一种称为CSS重置的常用技术。不同的浏览器使用不同的默认边距,导致网站看起来与边距不同。 *表示“所有元素”(通用选择器),因此我们将所有元素设置为零边距和零填充,从而使它们在所有浏览器中看起来都相同。