CSS Reset 问题解决方案大总结

在开发网站或应用程序时,CSS是关键技术之一。它可以使您的网站看起来更美观和专业。但是,每个浏览器都有自己的默认样式,造成了我们开发者难以控制所谓样式的问题。为了降低浏览器样式之间的差异,需要重置样式表,这时候CSS Reset就变得非常有用。本文将会回顾CSS Reset的历史,并提供CSS Reset的解决方案。

什么是CSS Reset?

CSS Reset是一系列预定义的样式表规则,这些规则将Web浏览器强制为不含有任何样式,这些样式在每个浏览器之间是一致的。适当的使用CSS Reset可以确保在所有浏览器和设备上都可以编辑Web页面并保持相同样式。

CSS Reset的历史

尽管没有明确的创建者,但CSS Reset的历史可以追溯到2007年,这时 Eric Meyer 开发了第一个CSS Reset并包含在他的CSS框架“Blueprint”中。这个CSS Reset非常基础,主要清除了文本和列表的样式,并定义了一些默认样式,例如选择内容,链接的颜色,等等。

此后,许多其他开发者也创建了他们自己的CSS Reset。其中最流行的CSS Reset可能是Normalize.css,由 Nicolas Gallagher 和 Jonathan Neal 开发并基于Eric Meyer's Reset。Normalize.css专注于保持现代浏览器的一致性,并为常用元素提供了合理的样式。

CSS Reset的示例

每个CSS Reset都有其不同之处,这取决于你选择哪一个。以下是Eric Meyer和Normalize.css的样例:

Eric Meyer CSS Reset

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

Normalize.css

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

这两个CSS Reset都可以自定义和修改,但二者的目的是相同的,即移除浏览器默认的样式和设置元素的公共属性。选择和使用CSS Reset还取决于个人站点的需求和开发者的风格。

CSS Reset解决方案

虽然Eric Meyer的Reset和Normalize.css是两种广泛使用的CSS Reset,但仍有一些其他的解决方案可供选择。以下是其中一些:

YUI Reset

YUI Reset是一种混合Reset和Normalize.css,具有更多的样式复位,使YUI框架可以跨多种浏览器风格保持一致。

Reboot

Reboot是Bootstrap的CSS Reset,提供基础的排版,包括断点和排版标准。

HTML5 Boilerplate

HTML5 Boilerplate是一个大而全的CSS Reset,旨在为您提供一个完整的HTML CSS JS模板,包括响应式模板和框架构建。

总结

选择正确的CSS Reset可以使我们节省时间和精力。它可以确保我们的样式在不同浏览器和设备上的一致性,并最大限度地限制不必要的默认样式。不同的CSS Reset有很多特点,您可以根据自己的需求和开发风格选择使用。

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


猜你喜欢

  • CSS Flexbox 布局与传统布局的对比

    CSS Flexbox 布局是一种新型的布局方式,它可以使我们更加方便地实现响应式布局。与传统布局相比,CSS Flexbox 布局有哪些不同之处呢?本文将详细阐述它们的区别。

    1 年前
  • TypeScript 中使用枚举类型解决程序中的硬编码

    在程序开发中,硬编码是指直接使用字面量在代码中表示一些常量或枚举值,这样做的问题是,代码可读性差、维护成本高、可扩展性差,同时还存在风险,当常量或枚举值需要修改时,需要修改多处代码,甚至可能会遗漏某些...

    1 年前
  • ES2019 相关知识要点整理

    ES2019 是 ECMAScript 的第 10 个版本,也叫做 ES10。本篇文章将为你介绍 ES2019 中的一些重要特性和使用方法,希望能对你的前端开发有所帮助。

    1 年前
  • ESLint 检查 JS 文件时报错:Parsing error: Identifier 'arguments' has already been declared

    作为前端开发人员,我们经常使用ESLint来检查和规范我们的JavaScript代码。然而,在使用ESLint检查JS文件时,有时会出现Parsing error: Identifier 'argum...

    1 年前
  • 基于 Fastify 的微服务实践

    近年来,微服务架构在企业级应用开发中的应用越来越广泛。微服务架构通过将一个应用拆分成多个小型的服务进程来提升系统的可维护性和扩展性,同时增强系统的稳定性和弹性。在微服务架构中,每个服务都可以独立地开发...

    1 年前
  • # 利用 Promise 实现带超时的异步执行

    利用 Promise 实现带超时的异步执行 在前端开发中,异步执行是非常常见的操作,但在某些特定的场景下,我们可能需要对异步执行进行超时控制,以避免出现等待时间过长的情况。

    1 年前
  • Docker 在 CI/CD 中的应用

    随着现代应用开发的快速发展,持续集成和部署 (CI/CD) 已经成为一个必不可少的组成部分,使得企业能够更快速地交付高质量的软件。 在 CI/CD 流程中,Docker 作为容器技术的一种具体实现,已...

    1 年前
  • SSE 如何处理单个客户端的连接异常?

    前言 在前端开发中,SSE(Server-Sent Events)是一种常用的技术,可以实现服务器向客户端推送事件。但是,由于网络等诸多原因,单个客户端的连接可能会出现异常,这时候我们应该如何处理呢?...

    1 年前
  • CSS Grid 实例介绍:艺术家 Grid

    CSS Grid 是一项重要的前端开发技术,它能够让我们更好地布置网页,风格化排版,实现各种美观的网页效果。本文将介绍 CSS Grid 在实际项目中应用的具体情况,加深大家对 CSS Grid 的理...

    1 年前
  • Webpack 如何实现自动化构建

    在现代 Web 应用开发中,自动化构建是一个非常重要的环节。而这其中,Webpack 是一个非常强大的工具,能够实现模块化、打包、压缩等一系列自动化构建任务。本文将介绍 Webpack 的基本原理以及...

    1 年前
  • 前端路由:单页 SPA 应用的关键

    在现代 Web 开发中,单页应用 (SPAs) 正变得越来越流行。单页应用为用户提供流畅的、响应式的体验,而且可以支持高级功能,如动态页面更新和实时数据交互。但是,要开发出高质量的单页应用,前端路由 ...

    1 年前
  • Enzyme + React Native:如何测试异步更新的视图

    Enzyme + React Native:如何测试异步更新的视图 在 React Native 开发中,异步更新的视图是一种常见且必不可少的情况。然而,这也会带来一些测试的挑战。

    1 年前
  • Babel 编译后代码出现 “Cannot redefine property” 错误怎么办?

    在前端开发中,我们经常使用 Babel 来将 ES6+ 的代码转化为 ES5 及以下的版本以兼容旧版浏览器。但是,在使用 Babel 处理代码的过程中,有时会出现 “Cannot redefine p...

    1 年前
  • Jest 测试 React 组件中使用 ref 的方法探究

    React 是一个流行的前端框架,它允许我们构建高效的用户界面。在 React 中,ref 是一个非常重要的概念,它允许我们访问组件实例或者 DOM 元素。 在本文中,我们将探究如何在 Jest 中测...

    1 年前
  • Vue.js 实践:如何使用动态组件实现弹窗组件

    在前端开发中,弹窗组件是常见的交互组件之一。Vue.js 是一款流行的 JavaScript 框架,它提供了强大的组件化和动态渲染的功能,使得开发者能够轻松地创建和管理弹窗组件。

    1 年前
  • 使用 Chai 测试 GraphQL 接口:最佳实践

    GraphQL 是现代 Web 应用中流行的一种 API 设计语言。与传统的 RESTful API 不同,GraphQL 允许客户端精确地指定需要从后台获取哪些数据。

    1 年前
  • PM2 如何处理大量请求和连接?

    作为前端开发人员,我们常常需要面对处理大量请求和连接的情况。为了保证应用程序的可靠性、稳定性和可扩展性,我们通常需要使用一些工具来辅助我们处理这些情况。其中一个非常好用的工具就是 PM2。

    1 年前
  • Material Design 中使用滑动式 TabLayout 的制作方法

    在前端开发中,Tab Layout 是一个经常使用的控件。它可以让用户轻松地切换不同的页面。Material Design 标准中提供了一种滑动式的 TabLayout,它更加美观,并且能够适配不同的...

    1 年前
  • Serverless 如何实现消息通知?

    随着 Serverless 技术的不断发展和普及,其在消息通知方面的应用越来越受到关注。本文将从 Serverless 的角度,介绍如何实现消息通知的方案,帮助读者更好地应用 Serverless 技...

    1 年前
  • Tailwind CSS 的代码优化技巧分享

    在前端开发中,一个好的 CSS 框架可以大大提高我们的开发效率和代码质量。Tailwind CSS 是一款功能强大的 CSS 框架,它提供了丰富的样式组件和工具,使得我们可以快速构建美观且具有响应式的...

    1 年前

相关推荐

    暂无文章