CSS重置vs *外卡

时间:2015-08-11 17:32:46

标签: html css

为什么我不能简单地重置:

* { 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;
}

5 个答案:

答案 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>

http://jsfiddle.net/esm63r30/

非常裸露!

答案 3 :(得分:1)

使用CSS重置是一种快速实现设计良好起点的强大方法,可让您在编码时节省时间和杂乱。您应该找到通常想要重置的标签,而不是公然重置所有内容,并根据每个项目单独选择适用的默认值。

使用通配符重置

可以使用通配符CSS语句重置可能有也可能没有附加样式的每个HTML标记。虽然这很容易,但也可能产生不良影响。

通过从所有HTML标记中删除所有默认格式,您强制自己必须为这些标记创建自定义样式。记住,你可能只考虑div,span,ul,li和其他常见元素,完全忘记了abbr,pre和cite。

答案 4 :(得分:1)

这是一种称为CSS重置的常用技术。不同的浏览器使用不同的默认边距,导致网站看起来与边距不同。 *表示“所有元素”(通用选择器),因此我们将所有元素设置为零边距和零填充,从而使它们在所有浏览器中看起来都相同。