谷歌浏览器默认样式清单 & 相关 CSS Reset 解决方案

在开发前端页面时,我们经常会遇到浏览器默认样式导致页面样式不一致。而在谷歌浏览器中,其默认样式表非常详细,包含了大量的 HTML 元素的初始化样式,因此在样式编写时,我们需要清楚地了解这些默认样式,避免样式不可控或产生意外的样式规则。

谷歌浏览器默认样式清单

Chromium 开源项目 中,我们可以找到谷歌浏览器默认样式清单,该清单包含了 HTML 元素的默认样式定义。以下是部分常用元素的默认样式:

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

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

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

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

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

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

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

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

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

从上面的例子中可以看出,谷歌浏览器对 HTML 元素的默认样式有很多的定义,这些样式可能导致我们的网页不一致,笔者日常在多数情况下使用的是 Reset.css 来进行 reset 样式操作。

Reset.css 解决方案

Reset.css 是一种把所有 HTML 元素的内在表现强制置为一致的方法,用来消除默认样式的影响,让所有浏览器中呈现出的页面效果接近一致,并让我们的 css 样式充分发挥作用。

以下是部分 Reset.css 文件的核心代码:

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

Reset.css 针对 HTML 元素的默认样式进行了重置,并尽量保证了各种浏览器中的页面效果一致。但是在 Reset.css 中也存在不可避免的缺点:它可能导致某些元素的样式被完整地清空,进而导致页面表现出现不一致的情况,所以我们需要在编写 Reset.css 时进行谨慎处理。

Normalize.css 解决方案

另一种解决浏览器默认样式问题的解决方案是 Normalize.css,它是一款构建在 HTML5 元素之上的样式表,使用 Normalize.css 可以确保在所有主流浏览器中的默认样式表更合理、更一致,并支持大部分 HTML 元素和属性,而不是重置它们。

以下是部分 Normalize.css 文件的核心代码:

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

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

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

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

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

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

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

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

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

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

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

Normalize.css 与 Reset.css 的不同之处在于,Normalize.css 仅覆盖浏览器滥用的元素,而不是完全重置浏览器默认样式。它使得我们在进行细节调整时更加灵活。

总结

浏览器默认样式可能导致网页样式不一致,我们可以通过 Reset.css 或 Normalize.css 来解决这个问题。但是需要注意的是,我们需要根据实际情况选择不同的解决方案,并在使用时谨慎处理。希望本文能够帮助读者更好地理解浏览器样式问题,同时也为前端开发者提供实用的解决方案,让网页呈现更加优美。

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


猜你喜欢

  • CSS Grid 布局:如何处理其子项的间距

    在前端开发中,布局是一个非常重要的环节。常常使用的 Flex 布局已经为我们带来了很多方便和灵活性,但是 CSS Grid 布局能够更好地处理复杂的布局。在进行 CSS Grid 布局时,我们经常会遇...

    1 年前
  • 详解 Web Components 的生命周期

    Web Components 是一种可以帮助我们更好地复用组件化代码的技术。与 React、Vue 等框架相比,Web Components 更为灵活和可复用。在这篇文章中,我们将详细讨论 Web C...

    1 年前
  • ECMAScript 2018 中的 RegExp 构造函数改变了哪些东西?

    正则表达式是前端开发中必不可少的一部分。在 ECMAScript 2018 中,RegExp 构造函数进行了更新,提供了一些新特性和改进,方便开发者更加有效地使用正则表达式。

    1 年前
  • Koa 项目中如何使用 Koa-helmet 插件增强应用安全性

    什么是 Koa-helmet? Koa-helmet 是一个专门为 Koa 框架开发的插件,它集成了多个 HTTP 头部安全性设置,使用它可以帮助我们增强应用的安全性。

    1 年前
  • React Native 中的时间处理技巧总结

    React Native 是一种十分强大的前端开发框架,它可以让开发者在不同平台上构建原生应用。在移动应用中,时间处理是一项常见的任务,因此本文将为您总结 React Native 中的时间处理技巧。

    1 年前
  • SASS 中的变量作用域

    SASS 中的变量作用域 SASS 是一种 CSS 预处理器,它提供了很多 CSS 不支持的特性,如变量、嵌套、继承等。其中,变量是 SASS 最基本也是最常用的特性之一,它能够帮助开发者更好地组织和...

    1 年前
  • RxJS 实现图片懒加载优化方案

    前言 在网页内容过大,需要加载大量图片的情况下,图片懒加载技术是很有必要的。它可以帮助我们减少页面加载时间,提高用户体验。RxJS 是一个流畅且易于使用的 JavaScript 函数响应式编程库,它可...

    1 年前
  • 使用 Babel 执行 Gulp 任务的示例代码

    在前端开发中,使用 Gulp 可以让我们更高效地编译、压缩、合并代码等,而使用 Babel 则能够让我们在浏览器中使用 ECMAScript 6(ES6)的语法。那么,使用 Babel 执行 Gulp...

    1 年前
  • 无障碍开发实践之多级菜单实现

    在前端开发中,无障碍设计是必不可少的一项工作。随着越来越多的人习惯使用屏幕阅读器,多级菜单的实现也需要考虑无障碍方案以保证屏幕阅读器的正常使用。 为什么要考虑屏幕阅读器的使用? 屏幕阅读器是一种辅助技...

    1 年前
  • 如何在 Jest 测试中 Mock 全局 CSS

    如何在 Jest 测试中 Mock 全局 CSS 在前端开发的过程中,我们经常需要写测试用例来确保代码的质量和稳定性。而在测试中,我们可能会遇到一些需要 Mock(模拟)掉全局 CSS 的情况,这篇文...

    1 年前
  • Webpack 4.x 中如何将 jQuery 打包成 Dll 文件?

    Webpack 4 在处理大型项目时十分强大,它可以使你快速地构建现代化的 Web 应用程序。然而,当项目的体积变得越来越大时,Webpack 可能会变得不太灵活和缓慢。

    1 年前
  • PM2 如何进行应用程序的弹性伸缩和动态调整

    PM2 是一个强大的进程管理器,它可以在生产环境中管理应用程序的生命周期,包括部署、启动、停止、监控等等。在这篇文章中,我们将介绍如何使用 PM2 实现应用程序的弹性伸缩和动态调整,以便更好地适应不同...

    1 年前
  • 在使用 Chai 进行单元测试时遇到的数据驱动问题及解决方式

    在前端开发中,单元测试是一项非常重要的工作,它可以帮助我们在开发过程中发现和调试错误,提高代码的质量和稳定性。而在进行单元测试时,Chai 是一款非常受欢迎的断言库,它在功能和灵活性上都非常优秀。

    1 年前
  • 在 Kubernetes 中使用 DaemonSet 进行任务调度

    在 Kubernetes 中使用 DaemonSet 进行任务调度 Kubernetes 是一种流行的容器编排系统,可以实现在多个节点上部署和管理容器化应用程序。DaemonSet 是 Kuberne...

    1 年前
  • 解决 Headless CMS 中数据交换的需求及实现方法

    随着互联网的发展,越来越多的网站和应用程序需要将内容与数据动态化展示,而 Headless CMS 的出现使得这一需求得到了更好的解决。但在使用 Headless CMS 时,如何与前端进行数据交互成...

    1 年前
  • Redux 深入浅出:如何处理复杂数据流

    在现代的 Web 应用程序中,复杂的数据流是很常见的。Redux 是一个流行的状态管理库,它能够帮助我们有效地处理这些复杂的数据流。在本文中,我们将深入了解 Redux,讨论其核心概念、基本工作流程和...

    1 年前
  • 服务器出现故障怎么办?架构优化 Serverless 为你解忧

    在当前越来越注重用户体验的时代,对于前端开发人员来说,网站的性能和稳定性更加重要。但是服务器总是不可避免的会出现故障,直接导致网站的不可用,给用户和运维人员带来很多麻烦和压力。

    1 年前
  • Socket.io 中如何解决连接阈值过低导致服务器宕机的问题?

    在大规模的实时应用中,如何处理大量的连接请求是一个非常重要的问题。较小的连接阈值可能会导致服务器崩溃,而较高的连接阈值则会影响系统的响应速度和可靠性。为了解决这个问题,Socket.io 提供了一些方...

    1 年前
  • Enzyme 如何遍历 React 组件树?

    Enzyme 如何遍历 React 组件树? 在 React 开发过程中,我们经常需要对组件进行测试。而 Enzyme 是 React 测试工具库中的一员,它提供了强大的 API,可以帮助我们方便地遍...

    1 年前
  • 如何在 Next.js 中使用 Webpack?

    前言 在使用 Next.js 进行开发的过程中,我们经常需要使用 Webpack 来进行一些自定义配置。然而,如何在 Next.js 中正确地使用 Webpack 并没有那么简单。

    1 年前

相关推荐

    暂无文章