Eric Meyer Reset+Normalize.css 的综合使用方式

Eric Meyer 的 Reset.css 和 Normalize.css 因为其优秀的浏览器兼容性和样式复位效果,成为了很多前端开发者最常用的两个样式文件。然而,当我们需要在项目中使用它们的时候,需要如何选择并使用它们呢?本文将给大家带来一些综合使用方式的思路和实践。

了解 Reset.css 和 Normalize.css 的区别

首先,我们需要明确 Reset.css 和 Normalize.css 两个样式文件的区别和作用。

Reset.css(Eric Meyer's Reset)是对页面默认样式的完全清空,并重新定义了一套新的样式规则。它能使所有浏览器的表现一致,消除一些浏览器特有的样式,默认字体大小、行高等设置,让开发者能够更自由地控制样式。

而 Normalize.css 则是在保留默认样式的前提下,通过重新定义的方式去除浏览器的一些默认差异和bug。它主要是为了在不影响原生控件的情况下增强 CSS 样式的一致性,使得网站的外观更加美观,同时保证开发者可以快速地开发出具有良好可访问性的网站。

综合使用方式

既然 Reset.css 和 Normalize.css 在其使用方式上有差异,我们是否可以将它们结合在一起,达到既保留部分默认样式,又能在多个浏览器中得到一致的显示效果呢?下面,让我们看一下如何综合使用这两个样式文件,并摆脱可能出现的坑点。

  1. 引入 Normalize.css

由于 Normalize.css 保留了原生样式,在样式命名上与 Reset.css 有所不同,因此我们可以先引入 Normalize.css,保证页面要使用的元素在样式上已经得到了统一和增强。

----- ---------------- ---------------------
  1. 在 Normalize.css 之后引入 Reset.css

在引入 Reset.css 文件的同时,需要注意文件引入的次序。由于 Reset.css 的作用是对原生样式进行重置,并对浏览器对于某些样式表现存在的差异进行修复,在其后面再引入 Normalize.css 就可以保证这些差异能被修复,并达到预期的样式效果。

----- ---------------- -----------------
----- ---------------- ---------------------
  1. 接着添加自定义样式

在以上两个样式文件被引入之后,我们就可以进行自定义样式的添加。需要注意的是,由于 Reset.css 清空了默认样式,因此我们需要从头开始定义所有样式;而在 Normalize.css 中,浏览器默认样式已经保留,因此在使用时需要更加小心并根据自己的需要进行样式调整和覆盖。

示例代码

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

总结

Reset.css 和 Normalize.css 都是前端开发中非常实用的样式文件,它们各有优点,可以根据开发者的实际需求进行选择。在综合使用两个样式文件时,需要在引入顺序和自定义样式方面做好专业的规划,避免出现样式不一致或者样式冲突的问题。同时,参照示例代码,也可以对页面样式做出一些美化,让用户的浏览体验更加舒适和美好。

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


猜你喜欢

  • Promise 在 Node.js 中的应用实例讲解

    前言 Promise 是 JavaScript 的内置 API,可以让我们更优雅的处理异步回调,它主要是用于简化 JavaScript 异步编程的一种手段。Node.js 是一个基于 Chrome V...

    1 年前
  • ES12 中的新特性:增加了 DOM addEventListener 的捕获默认模式

    在前端开发中,DOM addEventListener 是一个非常常用的方法,它可以用来监听一个元素上的事件并执行对应的处理函数。在事件流中,事件的传递顺序分为冒泡和捕获两种模式。

    1 年前
  • 使用 Mongoose 优化 Express 应用中的数据库操作

    在开发 Express 应用的过程中,我们通常需要和数据库打交道。而在数据库操作中,使用 Mongoose 可以使得操作更加便捷和高效。 Mongoose 简介 Mongoose 是基于 MongoD...

    1 年前
  • Mysql 容器环境变量设置及 mysql 初始化

    MySQL 是一种关系型数据库,广泛用于 Web 应用程序的数据存储和管理。在开发和部署 Web 应用程序时,经常会使用容器化技术,如 Docker,来创建和管理 MySQL 实例。

    1 年前
  • Kubernetes 存储卷及 volume mode 详解

    前言 Kubernetes 是一个开放源码的容器编排系统,它可以自动管理容器化应用程序的部署、升级、伸缩和故障排查等任务。Kubernetes 提供了强大的存储卷(Volume)概念,使得容器能够更加...

    1 年前
  • Express.js 中的异常处理

    异常处理是 Web 应用开发中非常重要的一环。在 Express.js 中,处理异常可以有效地提升应用的稳定性和可靠性。本文将介绍在 Express.js 中如何使用 Express-async-er...

    1 年前
  • 闪亮的 ECMAScript 2018 (ES9) 新特性

    JavaScript 的标准制定组织 ECMAScript 在 2017 年底发布了 ECMAScript 2018(简称 ES9)的最终版本,在新的版本中引入了一些非常有趣且实用的新特性。

    1 年前
  • 解决 LESS 中背景图片无法显示的问题

    LESS 是一种基于 CSS 的预处理器,它提供了诸如变量、嵌套、Mixin 等功能,让我们能够更方便灵活地编写样式代码。然而,有时候我们使用 LESS 写的样式中,包含的背景图片却无法正确显示,这是...

    1 年前
  • 如何解决 Jest 测试报告中的 “Test exit with non-zero code: 1” 错误?

    Jest 是前端开发中常用的一款测试框架,它可以帮助我们快速写出高效、稳定的测试用例。但是在使用 Jest 进行测试时,有时会出现 “Test exit with non-zero code: 1” ...

    1 年前
  • Deno 中遇到 Module not found 错误该如何解决?

    什么是 Deno? Deno 是一个用于开发 Web 应用、服务端应用、脚本和工具的 JavaScript 和 TypeScript 运行时环境,它由 Node.js 的创建者 Ryan Dahl 开...

    1 年前
  • 怎么解决 Node.js 进程崩溃的问题

    Node.js 是一种非常流行的服务端开发语言,但是在开发中,我们时常会遇到进程意外崩溃的情况。如果不及时处理这些问题,就会导致严重的线上事故。那么,怎么有效的解决 Node.js 进程崩溃问题呢? ...

    1 年前
  • MongoDB 集群部署的优化和管理技巧

    前言 MongoDB 是当前广泛使用的 NoSQL 数据库之一,它具有高性能、高可用、高可扩展性等优点。但是,MongoDB 集群的部署和管理却是一个比较复杂且需要注意的问题。

    1 年前
  • ES7 async/await:解决你的异步编程困局

    随着 JavaScript 的发展,越来越多的应用需要处理异步操作,例如处理网络请求、操作数据库、定时器等,对于传统的同步编程方式,其效率和性能都无法满足现代应用的需求。

    1 年前
  • 外部库从 CDN 获取,减小 Webpack 打包体积

    随着 web 应用的不断发展,前端应用的体积也不断增大,这也对用户的访问速度和用户体验产生了很大的影响。为了解决这个问题,我们可以通过从 CDN 获取外部库的方式,达到减小 webpack 打包体积的...

    1 年前
  • ECMAScript 2020 中的函数式编程解析及其实际应用举例

    函数式编程是一种编程范式,它使用无副作用的纯函数来构建程序。ES2020 新增的一些特性让我们更容易使用函数式编程。 箭头函数 箭头函数是 ES6 中引入的一个新语法。

    1 年前
  • 学习 Redux:从 “你不知道的 JavaScript” 到实际应用

    Redux 是一个流行的 JavaScript 应用程序状态管理工具。它旨在简化前端应用程序数据的存储和操作,并且能够轻松跨组件维护数据。 虽然 Redux 可以用于任何 JavaScript 应用程...

    1 年前
  • RxJS 中 throwError 的使用场景及应用案例分享

    前言 RxJS 是一个 Reactive Extensions 库,它提供了丰富的 API 和一套响应式编程的范式。在 RxJS 中,throwError 是一个非常有用的操作符,它可以用来抛出一个错...

    1 年前
  • 移动端 Web 自动化测试之 Chai 和 Appium 的实现

    自动化测试是一项非常重要的测试活动,可以帮助我们快速有效地发现软件的缺陷,同时提高测试效率,降低测试成本。在移动端 Web 应用程序中,自动化测试同样重要。本文将介绍移动端 Web 自动化测试中两个重...

    1 年前
  • 在 Material Design 中使用 TextInputEditText 时,如何避免无法输入的情况

    在 Android 开发中,Material Design 被广泛应用在界面的设计中,其中 TextInputEditText 是一个常见的控件,主要用于输入文本、密码等信息。

    1 年前
  • ES10 中的 Array.sort() 方法的实现及扩展性

    在前端开发中经常需要对数组进行排序,而 Array.sort() 方法是最常用的数组排序方法之一。ES10 中的 Array.sort() 方法有一些新的用法和扩展性,本文将详细介绍实现和扩展方式,并...

    1 年前

相关推荐

    暂无文章