CSS Reset(CSS重置),是網頁設計中一個重要的概念,用來清除不同瀏覽器(EX:Chrome、Firefox、Internet Explorer等)之間的樣式差異。當我們在網頁設計中使用CSS(層疊樣式表)來控制網頁的外觀和風格時,不同瀏覽器可能會對相同的HTML元素、CSS樣式有不同的解釋,這種差異可能會導致不一樣的外觀。為了解決這個問題,CSS Reset就變得很重要。
CSS Reset的原理是通過將所有瀏覽器的默認樣式歸零(或是統一樣式),從而建立一個統一的基礎樣式,讓我們設計網頁時可以更容易地自定義網頁外觀。
Eric Meyer's Reset CSS是CSS Reset中的經典之一。它把所有HTML元素的樣式都清空了。這包括將所有外邊距、內邊距、列表樣式等都強制歸零。
例如此 CodePen範例 的h1~h6
、p
標籤內文字大小被設定為統一100%(預設16px)。
示例代碼:
/* Eric Meyer's Reset CSS */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font-weight: normal;
vertical-align: baseline;
}
/* More reset styles... */
特色:
(因為內容多,可看官方文件)
Normalize.css是另一種CSS Reset方法,它與 meyerweb CSS 最大差異在於它保留了瀏覽器預設的樣式,而它的特色有以下:
比起傳統的CSS reset,Normalize.css是一種現代的、為HTML5準備的優質替代方案。
它也被用於例如Twitter Bootstrap、HTML5 Boilerplate、GOV.UK、Rdio、CSS Tricks 以及許許多多其他框架、工具和網站上。
瞭解更多可以看這篇Normalize.css簡介、使用
Bootstrap是使用 Normalize.css。
但因為Bootstrap是全面性UI框架,會有一點點微調
(例如: Bootstrap是 box-sizing: border-box;
,而Normalize.css是box-sizing: content-box;
)
而Bootstrap的 Css Reset放在 reboot.css 檔案中,所以當你導入Bootstrap時,也同時套用了它的Css Reset。
在套用Bootstrap後我們會發現的變化:
box-sizing: border-box;
,寬高會以我們程式碼設定的寬高為主。而Bootstrap roboot是可以自己客製化的,之後的篇章會講到。
參考:
Reset CSS 與 Normalize.css 差異
30 天轉生到 bootstrap 5 的意識界系列 第 3 篇:CSS 魔力
30 天轉生到 bootstrap 5 的意識界系列第 27 集:Bootstrap 客製化 reboot 重置
重置 (Reboot)