reset.css 和 normalize.css 怎么选?

什么是 reset.css 和 normalize.css

在进行 web 开发时,我们经常需要统一不同浏览器之间的默认样式。为了解决这个问题,出现了两个可以统一默认样式的 css 文件 reset.css 和 normalize.css。

reset.css 是一种重置样式表,其主要作用是将浏览器的默认样式重置为一致的值,以避免不同浏览器之间出现样式混乱的情况。

而 normalize.css 则是一种标准化样式表,它不像 reset.css 那样将所有样式重置为一致的值,而是在不同浏览器之间建立共同的样式基础,保留了一些有用的默认样式,同时修复了一些浏览器之间的样式差异。

选用 reset.css 还是 normalize.css

正如上文所述,reset.css 的核心目标是在所有现代的浏览器上提供一个一致的样式基础。因此,reset.css 重置了所有浏览器的默认样式,让您可以从头开始编写自己的样式。如果您更喜欢从头开始,那么 reset.css 是一个的好选择。

而 normalize.css 更注重在所有浏览器之间建立一个通用的样式基础,保留有用的默认值,并为浏览器之间的差异提供修补程度。如果您想尽可能多地使用默认的浏览器样式,同时保持一致性,则 normalize.css 会更好地满足您的需求。

示例代码

reset.css

-- --- ------ ----- --
--
----------
-------- -
  ----------- -----------
-

-- ------ ------- ------- --
----------
--------- -
  -------- --
-

-- ------ ------- ------ --
-----
---
---
---
---
--
----------
----------
---
-----------
---
-------
-----------
---
---
-- -
  ------- --
-

-- --- ---- ---- -------- --
---- -
  ----------- ------
  ---------------- -------
  --------------- --------------
  ------------ ----
-

-- ------ ---- ------ -- --- -- -------- ---- - ----- --------- --
----------
--------- -
  ----------- -----
-

-- - -------- ---- ----- ---- - ----- --- ------- ------ --
-------------- -
  ------------------------- -----
-

-- ---- ------ ------ -- ---- ---- --
--- -
  ---------- -----
  -------- ------
-

-- ------- ---- --- ------ -- -------- -- ------- --
------- - - - - -
  ----------- ----
-

-- ------- ----- --- ------ --- ------- --
------
-------
---------
------ -
  ----- --------
-

-- ------ --- ---------- --- ----------- --
------ ------------------------ ------- -
  - -
    ------------------- ------ -----------
    -------------------------- - -----------
    -------------------- ------ -----------
    ---------------- ---- -----------
  -
-

normalize.css

-- --------
   -------------------------------------------------------------------------- --

---
 - -- ------- --- ---- ------ -- --- ---------
 - -- ------- ----------- -- ---- ---- ----- ----------- ------- -- ----
 --

---- -
  ------------ ----- -- - --
  ------------------------- ----- -- - --
-

-- --------
   -------------------------------------------------------------------------- --

---
 - ------ --- ------ -- --- ---------
 --

---- -
  ------- --
-

---
 - ------ --- ------ ------- ------------ -- ---
 --

---- -
  -------- ------
-

---
 - ------- --- ---- ---- --- ------ -- ---- -------- ------ --------- ---
 - --------- -------- -- ------- -------- --- -------
 --

-- -
  ---------- ----
  ------- ------ --
-

-- -------- -------
   -------------------------------------------------------------------------- --

---
 - ------ --- ------- --- ------ --- ------ --- --- ---- ---------
 --

- - --
-- - --
-- - --
-- - - -
  ----------- --
  -------------- --
-

-- ---
-- -- -
  ----------- --
  -------------- --
-

---
 - ------ --- ------- -------- --------- -- -- ----
 --

------------------- -
  -------- -----
-

-- ---------- ---------
   -------------------------------------------------------------------------- --

---
 - ------ --- ------- ------ -- --- ---------
 --

------ -
  ------- --
-

---
 - --- --- ------- ---- ---------- -- ------- ----- --- -------
 --

----------- -
  ---------------- ----------
  ---------------- --------- -------
-

---
 - --- --- ------- ---- ------ -- ------- ----- --- -------
 --

--
------ -
  ------------ -------
-

---
 - --- --- ------- ---- ---- -- --- ---------
 --

----- -
  ---------- ----
-

---
 - ------- ----- --- ----- -------- ---- --------- --- ---- ------ --
 - --- ---------
 --

----
--- -
  ---------- ----
  ------------ --
  --------- ---------
  --------------- ---------
-

--- -
  ------- --------
-

--- -
  ---- -------
-

-- -----
   -------------------------------------------------------------------------- --

---
 - ------ --- ------- ------ -- --------
 --

------ -
  ------ --------
  -------- ------
  ---------- -----
  ------------ ------- -- - --
  ----------- -----
  -- - --
  ---------------- ---------
  -- - --
  --------------- -- -- - --
  ------------------- --
  ----------------- -----
  -------------------- --
  ------------------ --
  --------------------- --
  ------------------- --
-

-------- -
  ------- --
  -------- --
-

---
 - ------- --- ---- -------- -- ---- --- ---
 --

-------- -
  --------- -----
  -- - --
  ------- ---------
-

---
 - ------ --- ----- ------- --- ------ ------- -- ------ --- ------ -- ------
 --

--------------- -
  ------------------- -----
  -- - --
  --------------- -----
  -- - --
-

--------------------------------------------- -
  ------------------- -----
-

-- -----------
   -------------------------------------------------------------------------- --

--
 - --- --- ------- ------- -- ----- -- ---- --- --------
 --

------- -
  -------- ------
-

--
 - --- --- ------- ------ --- --- -------- --- -- --- ---------
 --

-------- -
  --------------- ---------
-

--
 - ---- --- -------- -- ---
 --

-------- -
  --------- -------
-

-- ----
   -------------------------------------------------------------------------- --

---
 - --- --- ------- ------- -- -- ----
 --

-------- -
  -------- -----
-

总结

reset.css 和 normalize.css 都是在 web 开发过程中优化样式表的有力工具。它们在处理不同浏览器之间的样式差异时,有各自的优点和不同的重点。

在选择使用哪个之前,根据您的具体需求确定您希望在所有浏览器中使用的样式基础,以及您想要使用多少默认浏览器样式。不管你最终选择了哪一个,它们都可以在解决样式问题上提供强大的帮助。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64685ab2968c7c53b0895cf6


猜你喜欢

  • PWA 实际案例中的总结与应用实践

    前言 PWA(Progressive Web App)是一种基于 Web 技术的应用程序,它可以像原生应用程序一样为用户提供类似于原生应用程序的体验。PWA 具有写一次运行在各种设备上的优势,同时它可...

    1 年前
  • CSS Flexbox 在 IE10 下的兼容性处理方案

    前言 CSS Flexbox 布局模型已经成为了前端开发的热门技术。它能够非常灵活地对容器中的子元素进行布局,而且也能够提高开发者的开发效率。不过,在很多项目中,我们仍然需要兼容 IE10 下的 Fl...

    1 年前
  • 使用 ES8 async/await 运行多个请求

    随着互联网的快速发展,前后端分离的技术越来越成熟。在前端开发中,常常需要同时向不同的后端接口发送请求,并获得请求结果进行处理。而 ES8 引入的 async/await 关键字,可以让我们更加方便地实...

    1 年前
  • Koa.js 中如何使用 Sentry 进行错误监控

    在前端开发中,错误监控是一个非常重要的环节。在 Koa.js 应用中,我们可以使用 Sentry 来进行错误监控,以及实时、准确地追踪代码错误并进行精细化的分析。Sentry 是一款功能强大的错误监控...

    1 年前
  • Next.js 上部署 Shiny 项目

    Shiny 是 R 语言中的一个交互式数据可视化工具,它可以帮助我们通过 web 界面快速构建交互式数据可视化应用。而 Next.js 则是一种 React 框架,它可以让我们更加方便地构建 Reac...

    1 年前
  • 用 TypeScript 开发一个跨平台应用

    TypeScript 是一种由微软开发的静态类型语言,在 JavaScript 基础上增加了类型系统和面向对象特性。它能够帮助开发者在编写前端代码时,发现潜在的类型错误,并提供更好的代码编辑和重构体验...

    1 年前
  • 10 道前端面试题:掌握 Babel 编译和 React 源码原理

    在前端开发中,Babel编译器和React框架是两个必不可少的技术。掌握它们的原理和使用方法,可以让我们更好地开发前端项目。本篇文章将介绍10道面试题,通过这些问题能够更好地理解Babel编译和Rea...

    1 年前
  • GraphQL 中的 Enum 类型及其用法

    在 GraphQL 中,Enum 类型是一种非常强大的数据类型,可以定义一组可选的值,这些值适用于某些特定时刻的操作,如过滤、排序等。本文将为您详细介绍 GraphQL 中的 Enum 类型及其用法。

    1 年前
  • Cypress 如何测试页面加载性能?

    Cypress 是一个现代的前端自动化测试工具,可以用于测试应用程序的各个方面,包括页面加载性能。在本文中,我们将介绍如何使用 Cypress 测试页面加载性能,并提供一些示例代码以帮助您入门。

    1 年前
  • Redis 在电商应用中的使用实践

    Redis 是一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息中间件。在电商应用中,Redis 可以对性能提升和业务的可扩展性做出贡献。本文将从电商应用实践角度介绍 Redis 的使用,包括...

    1 年前
  • 如何在测试 React 组件时使用 Enzyme 的玩具的 JSX 语法

    测试是前端开发过程中非常重要的一步,它能够帮助我们确保代码质量和稳定性,同时也能提高我们的代码造诣。而 React 组件作为现代前端开发中的核心部分,其测试也变得越来越重要。

    1 年前
  • ES10 中新增的 Array 中的方法实战

    ES10 中新增了 Array 中的三个方法:Array.flat()、Array.flatMap() 和 Array.at()。这些新功能可以让我们更轻松地处理数组数据,做到更好的性能和可读性。

    1 年前
  • 如何在 Tailwind CSS 中使用自定义背景颜色

    Tailwind CSS 是一种强大且易于使用的 CSS 框架,它可以帮助您快速构建现代化的 Web 界面。其中之一的优势就是使用了颜色变量,但是一些时候,我们需要使用自定义的颜色,比如公司品牌色等。

    1 年前
  • 解析 SSE 的 Content-Type 和 charset 问题

    Server-Sent Events (SSE) 是 HTML5 新增的一项用于浏览器与服务器之间实现推送通信的技术。它可以允许服务器向客户端推送事件,而无需为每个事件建立一个新的 HTTP 连接。

    1 年前
  • Headless CMS 中如何实现自动化测试

    随着 Headless CMS 的兴起,越来越多的开发者开始使用这种解耦的内容管理系统来开发网站和应用程序。其中,自动化测试对于开发者来说是至关重要的一环。在本文中,我们将重点介绍如何在 Headle...

    1 年前
  • Promise 与 ES6 模块的结合使用方式

    随着前端应用的不断复杂化,异步操作也变得越来越常见。Promise 是 JavaScript 中一种优雅且强大的处理异步操作的解决方案,而 ES6 模块则是 JavaScript 中的模块化标准。

    1 年前
  • 利用 ES6 的 Map 数据结构实现多语言处理

    在现今的软件开发中,涉及到多语言的场景非常普遍。在前端开发中,处理多语言通常需要创建一个映射表,将语言文本与对应的翻译进行存储和管理。而 ES6 中新增的 Map 数据结构,为前端开发者提供了更便捷的...

    1 年前
  • Mongoose 实现自定义索引的技巧详解

    Mongoose 是一个 Node.js 的 ORM(Object-Relational Mapping)库,用于在 Node.js 中和 MongoDb 进行交互。

    1 年前
  • RESTful API 中的 API 版本控制方法

    RESTful API 是现代 Web 开发中常用的一种架构风格和设计方式,通过 URL、HTTP 动词和参数等简单的请求响应方式来实现客户端与服务器之间的通信。随着应用程序的规模不断扩大,API 的...

    1 年前
  • ESLint 规则之 no-useless-constructor 详解

    在前端开发中,代码的质量对于整个项目的成功非常重要。而在代码的编写过程中,我们经常会遇到一些不规范的写法,影响了代码的易读性和可维护性。为了保证代码的质量,我们通常会使用静态代码分析工具来检查代码风格...

    1 年前

相关推荐

    暂无文章