CSS Reset、CSS normalize的選擇與使用情境心得

開發網頁上很麻煩的一點是,一打開網頁瀏覽器會預設載入line heights(行高)、padding(內距)、border(邊框)、margin(邊界)...等等等等,容易造成破版和排版上的困難,使用者就會開始抱怨,這時候網頁工程師就會很頭大,要一一為各個瀏覽器客製化,這多大的工程阿...😭。

為了因應這種情況,「CSS 大師」Eric A. Meyer 提出一個非常既簡單又實際的方式,那就是全部歸0吧!他設計出 CSS Reset 讓各家瀏覽器預設全部武功盡失~全部重新打掉,讓網頁設計師自行依照自己的設計做編排,解決了排版這種大的問題,也就是統整各個瀏覽器的樣式設定。

以下提供CSS Reset網路上最常用的 語法:
/* 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;
}

而我自己本身使用CSS Reset有兩種情況,一個是一頁式網頁和電腦版網頁(官網),而我自己本身使用CSS Reset有兩種情況,一個是一頁式網頁和電腦版網頁(官網),原因有二,一是手刻隨我高興想怎麼排版怎麼做都可以,二是電腦版螢幕尺寸直接針對1024px做設計。基本上都是圍繞在自己的設計為出發點,不過這種情境很少...頂多寫自己的作品而已吧😅...看得順眼就好XD。

不過使用CSS Reset麻煩的是有這些缺點:

  • h1~h6字級大小都沒差,大小不一樣要另外寫。
  • h1~h6和p大家都被重置,和內文文字沒什麼兩樣。
  • ul、li黑點和ol、li白點都不見了。
  • 表格沒有隔線。
  • 如果是寫專案,等於說每一頁都要加入CSS Reset,會非常累人...
反而CSS normalize 我比較常搭配Boostrap,CSS normalize最大的好處是保留了原本預設HTML標籤的樣式,只稍做微調,個人覺得好用是:
  • h1~h6字級大小幫你決定好了。
  • Line Height都統一1.15,不會像CSS Reset全部重置,文字擠在一塊。
  • 按鈕大小統一。
  • 同樣也達成統一各種瀏覽器的樣式設定。
  • 架構彈性,網頁設計師可輕易修改。
兩者都是看開發情境而定,且也不建議混用因為沒有太大上的意義,兩者都是為了統一各個瀏覽器的樣式設定。

以下參考:

jacksonchen

正在精進前後端網頁技術的小猴子,喜好開放原始碼軟體與Linux作業系統,把玩各種指令與程式碼一整天都可以不亦樂乎,歡迎交流喔^_^