查看文章 |
很多前端设计高手的文章里面,都建议不要用*{margin:0;padding:0},理由都没有解释的很清楚,或是简单的说下它会对网页的表单控件默认样式造成一点的异常(我个人认为这个问题根本就不是问题),也有传言它会造成对性能会有影响(但一直都没有拿得出的事实依据),也有建议用Eric Meyer和YUI的Resets替代(我反而觉得*{}比他们写的RESETS更聪明也更简单),唯一想搞清楚的问题是(也是最关键的):用*{margin:0;padding:0}到底会不会对性能造成的影响?下面参考了网上高手们的一些讨论。 反方观点: numa001 发表于 2008-3-17 16:48 ================== qblxj 发表于 2008-3-17 18:03 对所有存在的DIV都做一次通配操作,假如网页很大很复杂,那多余无谓的操作就会很多 =================== winnersong 发表于 2008-3-27 18:48 * 不能乱用之前我一直习惯用*,因为这样可以省略很多代码。 但是后来问题来了,我发现我做的搜索框总是和线上的不一样,按钮也总不一致,ie和ff有很大的区别,找了半天才知道是*引起的原因! 正反观点: wiseinfo 发表于 2008-3-18 05:25 需要就好!不需要就不好!所谓说不好的理由是什么? “增加了内存的额外开销” 你通过什么证明的?原理是什么?只是格式化标签样式而已,难道标签原来的样式不占用内存吗?几乎绝大部分的浏览器都是利用浏览器自带的默认CSS样式来帮助其解释标签在默认状态下的样式。也就是说即便你不针对某一个标签设置CSS样式它在浏览器中还是有默认CSS样式的。 ========================= heidian 发表于 2008-3-18 08:13 用*可能是不严谨,但是带来的效率是看得到的,谁让浏览器各自有不同的默认值呢,这个通配符设计出来我觉得就是冲着这个问题来的。 如果用*赋予属性会造成巨量内存消耗,那么应该是浏览器的问题,因为这么两个短短的属性都不能应付,这个统配符号没有存在的必要。 =========================== kuhanzhu 发表于 2008-3-20 11:06 CSS并非ASP、PHP等需要在服务器端解析的 div,form,img,ul,ol,li,dl,dt,dd {margin: 0; padding: 0; border: 0;} ========== 我的结论:*{}造成性能问题是扯谈,关于会造成不严谨的问题,我想这个更多是个人习惯的问题,如果真正习惯了*{},根本不需要任何的RESET,而且写起代码来腰不酸了,背不痛了,写的也更有劲了!
|

