用通配符清空默认样式好,还是指定标签来清空好些?

1、之前我都是这样清除默认

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{
    padding: 0;
    margin: 0
}

2、看到好多项目是这样写的

*{
    padding: 0;
    margin: 0
}

3、这两种方式应该第一种对资源消耗少些吧,大家一般怎么写的呢?

阅读 3.9k
4 个回答

星号(*)的优先级是很高的,他的作用域很大。所以,你的页面层次越复杂,重复继承和渲染的次数就越多。

而且例如: *{

   color: #....

}
/body中有的标记的字体都会变色,但是超链接不行。通配符,但是注意兼容性,少用*/

那么星号(*)通配符是不是就不能用,或者越少用越好呢?当然不是!不过要坚持这样的原则:
不要在在深层次的页面结构中使用它;
不要在页面的根节点使用它;
不要在距离目标节点较远的节点上使用它

在项目中一般第一种写法,第二种写法我用来写测试demo,另外*选择器的权重比继承大

一般会用一个reset.css文件重置各个标签的默认样式,不同类型的标签会重置为不同的初始样式,但通常不会只写*{padding: 0;margin: 0;},除非是Demo。

我正式项目用第一种~demo就随便了~

margin: 0;
padding: 0;
border: none;
outline: none;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题