使用normalize.css代替reset.css但在使用中浏览器会有一些默认样式,比如说
ul会有默认的内边距,dd也会有默认的内边距。自己还得手动的清除,那么和reset.css
比起来,normalize.css优势怎样体现呢?
使用normalize.css代替reset.css但在使用中浏览器会有一些默认样式,比如说
ul会有默认的内边距,dd也会有默认的内边距。自己还得手动的清除,那么和reset.css
比起来,normalize.css优势怎样体现呢?
为什么要清除呢?
如果你做了一个cms系统,或者博客系统,论坛系统,当用户在富文本编辑器里面输入列表时,看到的也是有缩进的,结果点击提交后,再一看效果,肯定得抓狂。
所以,normalize.css 只是把标签的表现形式统一了。让所有的浏览器都按照一个样式。
而reset.css呢?太疯狂了? 把所有的标签都变成了 div 了。
你写个 li,本来应该是个列表,结果表现出的样式和 div 一样。那我还不如写 div 呢!!
你写个 dd,本来是名词解释用的,结果表现出的样式和 div 一样。那我还不如写 div 呢!!
你写个 h3,本来是3号标题,结果表现出的样式和 div 一样。那我还不如写 div 呢!!
你写个 ul li,在 ie 里面,可能是3像素。在ff里面,4像素。chrome里面,5像素。IE使用padding,而ff使用margin。(打个比喻)
reset.css方式,太激进了。过头了。直接把所有的浏览器默认样式都去掉了。
normalize.css好,列表依然是列表,只是把所有的浏览器中样式都变成了 3像素,margin-left(这又是一个比喻)。
reset.css和normalize.css两个是不用
reset.css 是将所有的浏览器样式都统一,并清楚所有标签的默认样式,统一成自己想要的样式
normalize.css 也是将所有的浏览器样式统一,但是保留了标签的默认样式,比如: strong表示粗体,i 表示斜体,ul默认是有点...等等之类的
其实说白了,都是一样的东西……
都是对浏览器的默认样式做一些设置,然后方便后期自己对样式做处理。
这个你自己也可以针对自己的项目做一些reset之类的处理,下面这个是我之前整理后给自己用的,如果有兴趣的话,可以参考一下:http://linxz.github.io/tianyizone/css_reset.html
10 回答11.1k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
5 回答1.9k 阅读
reset.css
样式重置会让各个浏览器的CSS样式保持一个基准,而这个基准就是“归零”。但它归零的思想过于暴力,宁可错杀一千,也不放过一个要清零的元素,其实很多设置都是画蛇添足
取一段reset.css的代码
div,li
标签默认是没有margin,padding值,但是还是被设置{margin:0; padding:0;}
属性dt
标签的margin,padding默认值就是0,但这里又被设置了一次{margin:0; padding:0;}
code
标签属于inline行内元素,是不能设置{margin:0; padding:0;}
....
我们再来看一段
这个设置往往在开发中有很多潜在的问题,单从用户体验上讲一个例子:
假设你的页面上有一个可编辑内容区域,用户设置了一个
strong
效果,但发现它却没有任何的反应,用户就会产生的疑惑,为什么我加粗了却没有反应?或许,你都不知道它已经被暴力的清0了。
normalize.css
帮你合理重置掉可能产生问题的样式,坚持保留部分浏览器的基础样式,解决一些潜在的问题,做到真正合理的浏览器样式初始化。(想你所想,给你所要...)