2012年2月8日 星期三

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

各自為政的瀏覽器

網頁設計的標準(HTML & CSS)是由 W3C 協會所制定的,然而,各大瀏覽器為了展現自身的強大,都自行加入一些有的沒有的設定,造成咱們網頁設計師在排版的時候,就得依每個瀏覽器的不同,而多花好多時間來調整改寫 CSS 語法。

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

關於 W3C 標準

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

最佳的方法「Reset CSS」

世界知名的 CSS 大師「Eric A. Meyer」整理出一個很棒的解決方法「Reset CSS」,針對 CSS 語法最容易出問題的部份~例如 margin 外間距,各大瀏覽器最常發生不一致的狀況,現在將 margin  全部統一歸 0 ,其他部份,文字大小和行高也全部統成一樣的大小 …. 等,只要掛上這一段「Reset CSS」語法,就可以讓所有的各大瀏覽器乖乖聽話,呈現一樣的結果,CSS 的大同世界就在這裡啊!
Eric A. Meyer 大師的照片
Eric A. Meyer 大師
「Reset CSS」的語法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/* v1.0 | 20080212 */
 
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, font, 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;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}
 
/* remember to define focus styles! */
:focus {
    outline: 0;
}
 
/* remember to highlight inserts somehow! */
ins {
    text-decoration: none;
}
del {
    text-decoration: line-through;
}
 
/* tables still need 'cellspacing="0"' in the markup */
table {
    border-collapse: collapse;
    border-spacing: 0;
}

只要在我們寫的 CSS 前掛上這一段「Reset CSS」的語法,就可以輕鬆解決各大瀏覽器的差異了喔!
Eric 大師真是佛心來的,感恩啦。

沒有留言:

張貼留言