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

阅读时长 6 分钟读完

在开发前端页面时,我们经常会遇到浏览器默认样式导致页面样式不一致。而在谷歌浏览器中,其默认样式表非常详细,包含了大量的 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

纠错
反馈