CSS Reset 问题解决方案大总结

阅读时长 11 分钟读完

在开发网站或应用程序时,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

纠错
反馈