I'm doing a page that have a lightweight HTML.
I have seen gurus saying that universal selector is a bad thing and is better to use like that (From: http://meyerweb.com/eric/tools/css/reset/):
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;
}
最佳答案
无法精确控制要重置的元素-文档中使用的每个元素现在都必须明确设置其边距和填充,以及重置中可能包含的任何其他属性(例如border和outline)。
告别CSS规则从父元素到子元素的继承-通用选择器每次都胜出。因此,不仅必须在重置后定义每个元素,而且子元素现在不能继承每个元素的属性,因此还必须明确定义它们。所需的代码量甚至可能抵消CSS最小化所节省的尺寸!
根据通用声明,浏览器必须运行页面上的每个元素并应用通用规则:元素,它们的子元素以及曾曾曾曾祖先的孙子女都一样,并且有人声称这可能对资源和页面加载时间(这一点在现代浏览器中值得商)。)
包含6个以下版本的Internet Explorer出现了明显的HTML选择器错误:选择器应该失败,但不要失败。后代选择器(例如* html)不应与任何元素匹配,因为html元素是最顶层的父元素,因此,它不能是任何其他元素的后代。但是,Internet Explorer 5.5和6版本会忽略此选择器开头的通用选择器。
当通用选择器紧邻元素类型选择器时,Internet Explorer 6和7版本会将组合解释为后代选择器,而不是按应有的方式失败。在Internet Explorer 6和7中,此选择器还将选择一些不适当的SGML元素,例如doctype声明和注释。
关于html - 为什么编写所有标记以分配一种样式比使用通用选择器(*)更好?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11531964/