CSS Reset 是 Web 前端开发中常用的一种技术,通过清除各个浏览器默认样式,实现网站效果的统一和规范。本文将介绍目前最流行的 CSS Reset 方法以及其优缺点,并给出具体的示例代码。
1. Eric Meyer's Reset CSS
Eric Meyer's Reset CSS 是目前最著名的 CSS Reset 方法之一。该方法通过重设各个 HTML 元素的所有属性,使得网站的样式能够在各种浏览器上呈现一致,从而达到网页初步布局的效果。具体代码如下:
-- -------------------- ---- ------- ----- ----- ---- ----- ------- ------- ------- --- --- --- --- --- --- -- ----------- ---- -- ----- -------- -------- ---- ----- ----- ---- ---- --- ----- ---- ---- ---- -- -- ----- ------ ------- ------- ---- ---- --- ---- -- -- -- ------- --- --- --- --- --- --- --------- ----- ------ ------- ------ -------- ------ ------ ------ --- --- --- -------- ------ ------- -------- ------ ------- ----------- ------- ------- ------- ----- ---- ------- ----- -------- -------- ----- ----- ------ ----- - ------- -- -------- -- ------- -- ---------- ----- ----- -------- --------------- --------- - -- ----- ------------ ----- --- ----- -------- -- -------- ------ -------- ----------- ------- ------- ------- ------- ----- ---- ------- - -------- ------ - ---- - ------------ -- - --- -- - ----------- ----- - ----------- - - ------- ----- - ------------------ ----------------- --------- ------- - -------- --- -------- ----- - ----- - ---------------- --------- --------------- -- -展开代码
优点:Eric Meyer's Reset CSS 保留了 HTML 元素之间嵌套的关系,同时它的样式丰富,比较全面。
缺点:重设各个 HTML 元素的所有属性会非常耗费性能,而且如果网站中有用户自定义的样式表,Eric Meyer's Reset CSS 可能会不够灵活。
2. Normalize.css
Normalize.css 是一个相对于 Eric Meyer's Reset CSS 更加轻量级、更加模块化的 CSS Reset 方法。它在 Eric Meyer's Reset CSS 的基础上,对一些细节进行了更加细致的处理。比如把一些元素的边框显示为点线,让表单元素的样式保留原有效果等。具体代码如下:
-- -------------------- ---- ------- --- ------------- ------ - --- ------- - -------------------------------- -- -- -------- -------------------------------------------------------------------------- -- --- - -- ------- --- ---- ------ -- --- --------- - -- ------- ----------- -- ---- ---- ----- ----------- ------- -- ---- -- ---- - ------------ ----- -- - -- ------------------------- ----- -- - -- - -- -------- -------------------------------------------------------------------------- -- --- - ------ --- ------ -- --- -------- -------------- -- ---- - ------- -- - --- - --- --- ------- ------- -- -- --- - -- --- --- ------- ------- -- ----- --- --- -------- - -- --- --- ------- ------- -- --- -- -------- ------ ------- ------- ---- ------- - -------- ------ - --- - ------ --- ----------- --- ------------- -- ---- -------- -- ----- --- --- ------- -- ---- ----- ---- ---- - ------------ ---------- ---------- -- - -- ---------- ---- -- - -- - -- -------- ------- -------------------------------------------------------------------------- -- --- - ------ --- ------ -- ------ ----- -- ----- --- --- ------- -- -- - ------- -- - --- - ------- --- ----------- --- ------- -- ---- ---- -- --- --------- -- -------- ------- -------- - ------------ -------- -- - -- ---------- -------- -- - -- ------------ -------- -- - -- - -- ------- -------------------------------------------------------------------------- -- --- - --- --- ------- ------- ---- ----- - ------ ------- -- - --------- ---- -------- -- ------- ---------------- --------------- --------------- - ------------------- ------- -展开代码
优点:Normalize.css 代码量较小,采用模块化的设计思路,支持在其基础上扩展自己的 CSS 样式。
缺点:作者在 Normalize.css 中更加关注于浏览器间的差异性,可能会对网站的性能造成一定程度的削弱。
3. Modern Normalize
Modern Normalize 是 Normalize.css 的加强版,它针对一些重要的特性进行了更加详细的处理。比如,对于表格、链接、字体、元素的最小宽度等等都进行了统一处理。同时,Modern Normalize 还加入了一些比较新的样式,支持 CSS3 属性的一些前缀处理。具体代码如下:
-- -------------------- ---- ------- --- ---------------- ------ - --- ------- - ------------------------------------------------ -- -- -------- -------------------------------------------------------------------------- -- --- - --- - ------ --- ----- -------------- -- ---- - ----------- ----------- - -- --------- ------- - ----------- -------- - --- - --- - ---- -------- --- ---- -------------- -- ----- - -------------- -- --------- -- - --- - ------ --- ------ -- --- --------- -- ---- - ------- -- - --- - ------ ---------- --------- -- --- --------- -- ----- ---- - ----------- ------- - -- -------- -------------------------------------------------------------------------- -- --- - ---- -------- ---- ----- --------- -------- -- - -------- -------- -- -------------- ---------------------- - -------- ------ - --- - --- --- ------- --------- ----- -- ----- --------- -- --- - -------- ------ - --- - ------ --- ------ -- ------ ------ -- -- - ------- -- - -- ---------- --------- -------------------------------------------------------------------------- -- --- - --- --- ------- ----------------- ----- -- ------ -- - - ---------------- ----- - --- - ------ --- ------- -- ------- ----- ---- ---- --- ---- ------ -- -------- -- -------------------------------- - -------- -- - --- - --- --- ------- ------------- --- ---- ----- -- -- ------ - ------------ ------- - --- - ---- ---- ---- --- ------ -------- --- ----- ------ --------- -- ----- ---- ----- --- - ------------ ---------- ---------- ---------- ---- - --- - --- -------- -- ---------------- --------- ----- ---- ------- -------- ----- - -------- -- ------ --- -- ------ ------- ------- --------- --------- ------ - --------------- --------- - -- ----- -------------------------------------------------------------------------- -- --- - ----- --- ------- --------- ------ --- ------- ---- --------- -- ------------------------------------------- --------------------------------------------- - ------------------- ----- - --- - ------ --- ----- ------- --- ------ ------- -- ------ --- ------ -- ------ -- ------------------------------- --------------------------- - ------------------- ----- - -------------------- - ------------------- ----- ---------------- ----- ----------- ----- - --- - ------- --- ----- ------ ----- -- --- -------- ----- -- -------------------------- - -------- ----- -展开代码
优点:Modern Normalize 从浏览器的渲染机理入手,进一步完善了 Normalize.css 的代码。
缺点:Modern Normalize 的代码量较大,可能会影响网站的性能。
小结
本文主要介绍了当前比较流行的三种 CSS Reset 方法,分别是 Eric Meyer's Reset CSS、Normalize.css 和 Modern Normalize。对于这三种方法,要根据自己的实际需求和网站规模进行选择,找出最适合自己的 CSS Reset 方法,才能够提高网站的性能、兼容性和规范性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67d7c7c1a941bf7134deefbb