初学者必知:CSS Reset 的 5 个常见误区

AI 编程助手,豆包旗下的编程助手,提供智能补全、智能预测、智能问答等能力,节省开发时间,释放脑海中的创造力,支持 VSCode,点击体验 AI

在前端开发中,CSS Reset 是一个经常被使用到的技术,它能够帮助我们重置浏览器默认样式的设置,使我们在开发网页时更加的灵活。但是,初学者在使用 CSS Reset 时常常会犯一些误区,导致调试大量的样式、调整 UI 界面的布局效果,进而造成前端开发效率低下的问题。那么,这篇文章就将会介绍 CSS Reset 的 5 个常见误区,帮助读者更好的理解并使用 CSS Reset 技术。

误区 1:不适合自己的项目

许多初学者看到 CSS Reset 的神奇,就会在每个项目中使用它。但是,事实上 CSS Reset 并不适合所有的项目。有些项目正是源于浏览器默认样式的精细处理,若直接使用 CSS Reset 会失去很多细节。因此,在使用 CSS Reset 前,应该先对项目进行分析,明确需要使用 CSS Reset 的目的、作用及影响,才能选择是否使用 CSS Reset 技术。

误区 2:全局应用

CSS Reset 应该仅应用于你的 UI 组件,并不是应该全局使用的。这个误区在某些 CSS Reset 库中如 normalize.css 常常会犯,应该避免对全局进行样式的覆盖。如果一个 CSS Reset 库正在全局应用到你的项目中,那么它应该仅仅包含样式覆盖,而不是整个样式库。正确的使用方式是为你的 UI 组件制定样式覆盖,并使用不同的 CSS 类将它们组合起来。

例如,normalize.css 在一些 CSS 规则中覆盖了 h1 标签的样式,假设你想使用自定义的 h1 样式,则不应该覆盖全局样式,而是对目标 h1 元素使用自定义类名:

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

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

误区 3:缺失关键重置样式

在使用 CSS Reset 的时候,通常需要特别细心地学习 CSS Reset 的所有样式覆盖规则。一些初学者可能没有理解到所有方面的样式管辖权,导致关键的样式未被重置覆盖,如 font-sizefont-familyline-heightmargin 等重要的样式定义。必须确保这些关键样式被正确地覆盖。

误区 4:未考虑继承样式

CSS Reset 通常需要在局部 UI 组件中进行使用,但是有时候局部组件中某些样式是继承自祖先元素的,这也会影响到真正想要重置的目标样式。例如,一个 div 容器中包含一个 p 元素,假设你想要重置 p 中文本样式,但是你并没有清楚地了解每个元素的默认样式,因此你未考虑到 p 其实已经继承了周围容器 div 中的一些样式。这个问题的解决方案是更精细地使用 CSS 类,每个组件都应该有独立的类名。

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

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

误区 5:使用 CSS Reset 的完全副本而不是替代

虽然常常需要对浏览器默认样式进行样式的修正,但对于某些 CSS Reset 库而言,有一些与项目类型不匹配或与个人编程风格不符合的内容,所以我们并不需要完全将 CSS Reset 库的样式全部复制到我们的项目中来。正确的做法是仔细看一看库中的代码,寻找有什么库中的代码可以继承的格式,而不是仅仅直接复制整个 CSS Reset 库到自己的项目中。

结论

无论是 CSS Reset、Normalize,还是使用自定义的 CSS 类,每个前端开发人员都应该了解它们的应用场景,以便使用它们的同时可以更好地发挥它们的之优势,避免以上所提到的误区。这篇文章中介绍的五个常见的 CSS Reset 误区,当仔细思考时,都不难解决。因此,每个前端开发人员都应该学会如何正确使用 CSS Reset 技术,提高项目效率和创建响应式布局的速度。

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


猜你喜欢

  • 使用 Cypress 测试弹出口

    引言 在前端开发中,常常需要使用弹出口来交互数据。这些弹出口例如提示框、确认框等等,是页面主体的一部分,却需要额外的测试用例进行检验。本文将讲述如何使用 Cypress 对弹出口进行测试。

    15 天前
  • 学习 Chai 库之前需要掌握的 JavaScript 知识点

    1. JavaScript 中的值和类型 在 JavaScript 中,一切都是值。值分为原始值和对象。原始值包括数值、字符串、布尔值、null 和 undefined。

    15 天前
  • Tailwind 如何支持实时预览更改后的样式

    Tailwind 如何支持实时预览更改后的样式 如果你是一名前端开发人员,你一定不会陌生 Tailwind 。它是一种基于类的 CSS 框架,可以帮助开发人员快速构建网站和应用程序。

    15 天前
  • 如何使用 CSS Reset 重置 'input' 元素的默认样式

    在前端开发中,我们经常需要对网页元素进行样式调整以达到更好的视觉效果和交互体验。但是,不同浏览器对于网页元素的默认样式存在差异,这就可能导致样式不一致的问题。为了解决这个问题,现在有了一个常用的工具—...

    15 天前
  • GraphQL 查询中两个字段的值需要一致的解决方案

    在GraphQL查询中,我们常常需要查询两个字段的值是否一致,比如查询用户信息时需要同时获取用户的nickname和username,但又要保证这两个字段的值相同。本文将介绍一些解决方案。

    15 天前
  • 解决在 Fastify 中使用 Nodemailer 发送邮件失败的问题

    在使用 Fastify 编写应用程序时,我们可能会使用 Nodemailer 库来发送电子邮件。但是,有时候在使用 Nodemailer 发送邮件时会出现一些问题,导致邮件发送失败。

    15 天前
  • RxJS 实现数据流的缓存与共享

    RxJS 是一个强大的响应式编程库,可以通过它实现数据流的实时响应和复杂操作。在实际开发中,我们经常会遇到需要共享和缓存数据流的场景。本文将详细介绍如何使用 RxJS 来实现数据流的缓存与共享,并给出...

    15 天前
  • Express.js 中的日志记录与管理

    日志记录是任何 Web 应用程序的重要组成部分,能够帮助开发人员快速定位和解决应用程序中的错误和问题。作为一个流行的 Node.js Web 框架,Express.js 提供了一些内置的日志记录工具和...

    15 天前
  • PM2+Node.js 打造高可用 Web 服务

    前言 在现代 Web 开发中,高可用性是非常重要的。在处理大量请求和访问压力时,Web 服务的性能和可靠性非常重要。如果您使用 Node.js 开发服务端应用程序,那么您需要确保应用程序能够正确地运行...

    15 天前
  • 优化微服务的 RESTful API

    前言 随着云计算和微服务的发展,RESTful API 已经成为了开发者不可或缺的一部分。开发高性能和高可用的 RESTful API 对于微服务应用来说是至关重要的,因为它们需要在一个复杂的分布式环...

    15 天前
  • Sequelize 中如何实现权限管理功能

    Sequelize 中如何实现权限管理功能 在前端开发中,权限管理是非常重要的一项功能。Sequelize 是一个强大且极具可扩展性的 ORM 框架,允许我们在 Node.js 中使用关系型数据库。

    15 天前
  • 如何在 Koa 框架中使用 Mongoose 进行 mongodb 数据库操作

    在现代 web 应用中,数据库是不可缺少的一部分,而 mongodb 作为一种现代数据库,已经被广泛使用。在 node.js 生态系统中,Koa 是一种轻量级的 web 框架,而 Mongoose 是...

    15 天前
  • Redis 中最佳的内存使用方式

    Redis 是一个开源的内存数据结构存储库,它提供了速度快、可靠、可扩展的方法来存储和处理数据。在前端开发中,Redis 可以用于缓存用户数据、Web 地图或图像、地理位置等应用场景。

    15 天前
  • Vue.js 中如何实现动态加载组件

    引言 Vue.js 是一个流行的前端开发框架,具有非常强大的组件系统,但在实际的应用中,我们常常需要动态地加载组件以实现更灵活的功能。动态组件加载是 Vue.js 动态使用组件的一个非常重要的方面。

    15 天前
  • 解决 Angular 中对话框组件开启失败的 Bug

    在 Angular 应用程序开发中,对话框组件是一项非常重要的功能。 它们使我们能够向用户显示提示信息、询问用户确认或提供用于输入数据的表单等。 然而,有时在尝试打开对话框组件时,可能会遇到“组件开启...

    15 天前
  • Kubernetes 配置管理 —— 使用 ConfigMap

    在现代应用程序中,配置管理是至关重要的一环。应用程序的配置可能包含许多不同的变量,如数据库连接字符串、API 钥匙和密钥等。使用 Kubernetes,可以使用 ConfigMap 机制管理应用程序的...

    15 天前
  • 解决 ES6 对象扩展符 "..." 的语法问题

    在 ES6 中,对于对象的扩展,我们可以使用 ... 语法来进行操作。它可以用来将一个对象展开为多个参数,或将多个对象合并为一个对象。但是在使用 ... 语法时,有一些需要注意的语法问题,本文将会详细...

    15 天前
  • Node.js GraphQL 的教程

    GraphQL 是一种新颖的数据查询语言,可以让前端应用程序向后端服务器发送更加精细化的查询请求,以获取更加精准和优化的数据响应。Node.js 是一个高效而强大的后端 JavaScript 框架,它...

    15 天前
  • Fastify 性能优化:使用 Cluster 模块提高并发处理能力

    随着互联网技术的不断进步,Web 站点和应用程序的并发用户量越来越高,这就使得前端开发人员需要想方设法来提高网站或应用程序的并发处理能力。Fastify 是一个快速且低开销的 Node.js Web ...

    15 天前
  • 前端开发者在本地调试 PWA 应用程序的指南

    什么是 PWA (渐进式 Web 应用程序)? PWA 是一种使用现代 Web 技术创建的 Web 应用程序,它提供了原生应用程序的体验,包括离线支持、桌面通知、本地缓存等。

    15 天前

相关推荐

    暂无文章