什么是cssreset ?为什么要用到cssreset?

1,什么是cssreset ?

顾名思义,css reset,样式重置。即重新设置界面的样式。

CSS reset,又叫做 CSS 重写或者 CSS 重置,用于改写HTML标签的默认样式。 有些HTML标签在浏览器里有默认的样式,例如 p 标签有上下边距,li 标签有列表标识符号等。一开始,CSS的工作方式没有完全标准化。各个浏览器将自认为合适的"边框","填充","边距","字体","行高"等样式加载到一些基础元素(input,div,a,span)中,以赋予页面独特的感觉。这些默认样式在不同浏览器之间也会有差别,例如ul默认带有缩进的样式,在IE下,它的缩进是通过margin实现的,而Firefox下,它的缩进是由padding实现的。这必然会带来浏览器兼容问题。 因此,很基础的html元素在IE,Chrome,Firefox,Opera中的显示不尽相同。为了避免页面在不同的浏览器上有不同的效果,我们通常需要显示地对html元素的css样式进行一些默认设置,来将"浏览器自带的设置"重置掉,这个就叫做CSS Reset

2,为什么要用到cssreset?

如果你不定义HTML元素的默认css样式,那么浏览器自己就会用它自己的默认样式;但由于不同浏览器的默认样式是不一样的,会导致你开发的页面在不同浏览器上会看上去不太一样。

不同的浏览器在实现w3c标准过程中,对各个元素的实现是不一致的。这就导致了同一个页面在不同的浏览器中比如ie和chrome中,表现有差异。为了解决这个问题,即不同浏览器中表现的一致性,需要使用css reset。

3,如何使用css reset?

这个很简单,页面的头部引入css文件即可。

在头部直接添加style 标签。

复制代码
*{margin: 0;padding: 0;}

但是这种做法的缺点在于,使用*来匹配所有的元素,这样会降低效率,会影页面的渲染性能。其次,很多不必要reset的元素也一刀切式地reset了。最后就是这个做法太过于简单,无法实现精细化的reset。

后来,有人整了专门的css reset。

比如最常见的两种:reset.css和normalize.css。

后者被bootstrap所采用。normalize.css修复了不同浏览器常见的不一致,规范化常见的组件风格,保存有用的默认值。因此,选择用Normalize.css来取代其它的CSS Resets。

4,辩证的判断是否需要CSS Reset

CSS Reset的主要目标是确保浏览器之间的一致性,并撤消所有默认样式,创建一个空白板。

如今浏览器在布局或间距方面并没有太大的差异。总的来说,浏览器忠实地实现了CSS规范,所以不再那么需要了。

我们应该根据实际的需求辩证的判断是否需要CSS Reset,保持简洁,高效即可。

下面列出一个比较合适的CSS Reset模板,不会完全重置浏览器的默认样式而带来不便,同时能够避免一些常见的浏览器兼容性的问题。

5,使用CSS Reset的弊端

其实也有很多"不建议使用CSS Reset"的

所有的html元素都需要重新设置,会增加css文件的大小

如果重置掉一些基础属性,开发时会容易忘掉补充这些属性,反而引入显示混乱的问题

重置掉一些属性会影响用户通过键盘快捷键操作

相关推荐
米花丶9 分钟前
前端 Service Worker最佳实践(上):高效的预缓存与运行时缓存方案
前端
困困的果果头21 分钟前
【vue + element】el-table支持多层级合并列
前端·javascript·vue.js·elementui
GISer_Jing22 分钟前
React前端与React Native移动端开发须知差异
前端·react native·react.js
G等你下课27 分钟前
被低估的 CSS 核心!盒子模型如何撑起万亿级网页?
前端·css
只喜欢赚钱的棉花没有糖28 分钟前
从loader和plugin开始了解webpack
前端·webpack
前端日常开发29 分钟前
0 费用使用免费服务器部署 NestJS 项目
前端·后端
爱吃肉的小鹿29 分钟前
JavaScript 中 return和break 的区别
前端
Hilaku30 分钟前
😵‍💫 产品:你能不能让按钮 hover 有个动效?我直接做了个 UI 框架
前端·javascript·css
Nano31 分钟前
Vue 3.5 v-model 原理、自定义实现及与 Vue 2 的对比
前端·vue.js