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 大師的照片
以下是目前最新 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/
當您對本文有任何問題或指教,歡迎到我們的【網頁設計交流討論區】一起交流討論喔!