有些人使用此重置.*{保证金:0; 填充:0; }
每个元素在每个浏览器默认样式表中都有默认的边距和填充(但不同)?
虽然eric meyer收集了一些最常用的选择器并将其交给所有人
{
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;
}
Run Code Online (Sandbox Code Playgroud)
这些元素是否具有不同类型的字体大小?不同的基线,不同的背景,轮廓和边界?
如果我们保持除了通用选择器的缺点.
这是
* {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;
}
Run Code Online (Sandbox Code Playgroud)
比这更好
* {
margin: 0;
padding: 0;
}
Run Code Online (Sandbox Code Playgroud)
您可以在此处找到所有默认样式:CSS2.1用户代理样式表默认值.
如果仔细研究列表,那么您会注意到浏览器特定的边距仅针对HTML标准块元素设置,并且没有设置特定于浏览器的填充.换句话说,这padding: 0是多余的.但事实上,这margin是浏览器中最不平衡的,回答你的实际问题.
我可能会在这里踩到某个人的脚趾,但我最简单地认为使用CSS重置样式表是荒谬的.你将不得不重新定义这些大部分利润(和填充)的自己反正.你可以很好地学习并保持自己的规则来定义你将要在文档中使用的每个块元素的边距(以及必要的填充).
至于重置的残余:
这border: 0也是超级丰富的.的<hr>和最表单输入元素是有一个默认的边界唯一要素.没有它,它<hr>是不可见的(实际上,这在IE6/7中失败)并且具有相同背景颜色的表单上的文本输入元素也是不可见的.
本outline应该肯定不会被重置了,它打破了方便.您需要自己控制它,例如仅在具有(背景)图像的链接上自行重置它,因为这是重置它的主要原因.但是,它仍然打破了可访问性.而是考虑给它一个不同的轮廓颜色或样式,以便它仍然可见,但不那么令人不安.
该font-size: 100%会迫使你自己重新定义他们在<h1>,<h2>等元素.但即使没有重置,你仍然会喜欢这样做.那么重置有什么意义呢?
该vertical-align: baseline;的休息对齐<sub>,并<sup>让它们看起来像<small>.此外,表头也可能受到影响.这些默认设置middle在所有浏览器中.您需要再次自己重新定义它们.此外,众所周知,此重置可能会导致IE6/7对图像造成严重破坏.
这个价值background: transparent;对我来说不清楚.我没有看到任何重置的期望它可能会让IE6/7发疯.您还需要再次自己重新定义所有表单输入元素的背景颜色,这只会增加更多的工作(对于它们被放置在彩色容器中的情况).我确信无论何时遇到需要透明背景的元素,您都可以轻松发现自己并自行设置.
Enfin,看看你对这些信息做了什么.我不会阻止你使用CSS重置.我自己发现CSS重置仅在10年后才开始使用HTML/CSS.但是多年来,我也学到了这一点,这简直是胡说八道.但我承认,它对初学者很有用,因为重置会迫使他们明确地设置边距和其他东西.没有重置,你可以做得很好.