Reset CSS 重置歸零 – 網頁排版各瀏覽器快速一致化

Reset CSS 可以讓網頁排版更為順利,網頁設計的標準(HTML & CSS)是由 W3C 協會所制定的,每一個 HTML 標籤元素都有需設的 CSS 預設值的設定,例如 預設的 margin 、預設的 padding …等 ,這些預設的 CSS 預設值的設定,有些會為網頁設計師做 CSS 排版時帶來不便,另外,各大瀏覽器為了展現自身的強大,都自行加入一些有的沒有的 CSS 預設值的設定,造成咱們網頁設計師在排版的時候,就得依每個瀏覽器的不同,而多花好多時間來調整改寫 CSS 語法。

Reset CSS 解決 CSS 的預設值與各自為政的瀏覽器

重置歸零 – 網頁排版在各瀏覽器快速一致化

使用 CSS 最令人頭痛的部份就是各家瀏覽器對於 CSS 預設值的表現差異性太多了,用 CSS 寫好的網頁排版明明在 IE 看起來很正常,但是到了 Firefox 卻全變了樣,排版的位置都跑位了…. 更何況還有 IE 8、IE 9、IE 10、IE 11、Safari、Opera、Google Chrome…這麼多種不同的瀏覽器,每一個看起來都是會跑位,很多網頁設計師因此而爆肝的不少!

關於 W3C 標準

造成這樣大差距,主因在於「W3C 所制定的 HTML 標籤在 CSS 中的預設值 」各大瀏覽器的支援程度都不太相同,基本上 Firefox 和 Google Chrome 是最聽話的一家,只要是 W3C 規定的 Firefox 和 Google Chrome 都會乖乖照辦,然而,最不聽話的就是 IE 瀏覽器,常常跟 W3C 唱反調,更慘的是還有 IE6、IE7、IE8、IE9 對於 CSS 的呈現都有些不太一樣啊….唉!這時候就是需要靠 Reset CSS 來解決這些問題的時機了。

關於 *{ } 選取器 – 還沒使用 Reset CSS  時…

上課的時候因為一開始還沒教到 reset.css 時,常常就會先暫時使用 {} 選取器來做取消網頁所有物件的間距之類的功能,例如:{ margin:0; padding:0; } ,但是 *{ } 選取器會遍歷整個網頁所有的標籤,所以在執行速度上多多少少是會比較慢來的,在這個網頁速度會影響 SEO 的時代,網頁的速度是很重要的,因此,當我們教到 Reset CSS 之後 就會鼓勵同學使用 reset.css 或是 normalize.css 比較好,之後就不會再使用 *{ } 選取器了。

最佳的方法「Reset CSS」

世界知名的 CSS 大師「Eric A. Meyer」整理出一個很棒的解決方法,針對 CSS 語法最容易出問題的部份~例如 margin 外間距,各大瀏覽器最常發生不一致的狀況,寫成了一個 Reset CSS 檔案,將 margin  全部統一歸 0 ,其他部份,文字大小和行高也全部統成一樣的大小 …. 等,只要掛上這一段「Reset CSS」語法,就可以讓所有的各大瀏覽器乖乖聽話,呈現一樣的結果,CSS 的大同世界就在這裡啊,哈哈哈哈哈!

Eric A. Meyer 大師的照片

CSS 教學 - 網頁排版  - Reset CSS 重置歸零 - 網頁排版各瀏覽器快速一致化 - eric100x150

Eric A. Meyer 大師寫的 reset css

以下是目前最新 Reset CSS 的語法如下:

/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
 
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,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
    display: block;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}

下載: http://meyerweb.com/eric/tools/css/reset/reset.css

來源: http://meyerweb.com/eric/tools/css/reset/

只要在我們寫的 CSS 前掛上這一段「Reset CSS」的語法,就可以輕鬆解決各大瀏覽器的差異了喔!

Eric A. Meyer 大師真是佛心來的,感恩啦。

我們還有更多的 CSS 教學文章,請參考 CSS 教學區 http://www.flycan.com/article/css/

 

當您對本文有任何問題或指教,歡迎到我們的【網頁設計交流討論區】一起交流討論喔!

 

關於「姜智豪 老師」

於 1996 年開始從事網頁設計工作 20 多年,參與設計過許多網站專案的開發,一直熱衷網頁設計工作至今。從 1998 年開始從事教學工作,對於網頁設計教學有相當高的熱忱,於 2006 年創立飛肯設計學苑。主要專長 Photoashop、 HTML、CSS、RWD、JavaScript、jQuery 等網頁技術,對於 SEO 優化搜尋引擎排名提昇,以及 Instructional Design 教學專案設計亦有深入的研究。
posted in CSS 教學 - 網頁排版 and tagged , , , , .

留言功能已關閉。