我博客瀏覽量靠前的一直是《打造自己的reset.css》,
然而,我對此的觀點也已經(jīng)有所改變,
所以,我覺得是時候?qū)懸黄┛完U述一下目前我的理解了。
注意,這是篇激進的博文,其觀點并不客觀中立,僅僅表示出我目前的想法。
是否使用*{MARGIN:0;PADDING:0}
實際上,我現(xiàn)在根本不避諱*{margin:0;padding:0}這種寫法了。
我從未看到過真正有關(guān)于這個對性能有影響的報告
也不覺得下面Eric的重置樣式比起這玩意有多高明之處
- 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: baselinebaseline;
- background: transparent;
- }
上面的代碼波及面一樣很大,難道就不造成性能問題了?
到寫具體元素樣式代碼的時候就不會因此受到reset.css的影響了?
扯淡!
現(xiàn)在回過頭來看去年3月寫的那篇博客《打造自己的reset.css》,
覺得有些想法是人云亦云,有些想法過于幼稚了。
另外找到了一篇博文支持我這種看法,可以看看
關(guān)于CSS RESET,關(guān)于*{margin:0;padding:0}
其他表現(xiàn)不同的元素
除此padding和margin之外,如果一個元素在不同瀏覽器內(nèi)表現(xiàn)顯著不同,
那何不直接在用到的那個頁面寫css呢?
何必為了少數(shù)元素的表現(xiàn),寫到全局的reset中呢?
實際上隨著IE6的逐漸老去,這種差異已經(jīng)越來越小了
而我們關(guān)心的依然是主流瀏覽器,IE6,IE7和IE8,這3個是絕對主流,
以及我們自己會用的Firefox和Chrome或者其他
那么只要這幾個主流瀏覽器測試下來沒問題,就沒問題了,
有必要花成本關(guān)心其他更小眾的瀏覽器么?
另外,我們實際中也很少對頁面設(shè)計需要對任何元素精確到像素級的還原,
只要整體表現(xiàn)得當(dāng),個別元素的出格(更多的是跟操作系統(tǒng)有關(guān))無傷大雅。
實際上我就沒看到有人非得把表單按鈕重置到讓mac系統(tǒng)下的樣子跟win下一樣。
原汁原味的元素
很多元素瀏覽器默認樣式就都一樣(至少大致差不離),并且都很不錯
比如 ins 和 del 這種,還有 strong 以及 em 這類。
默認樣式不好么?如果到頭來也不過就是讓strong變成粗體,em變成斜體
那還不如不要重置呢。
如果有自己的想法呢,希望全局都一樣呢?不如寫 global.css 吧!
RESET.CSS VS GLOBAL.CSS
是的,很多網(wǎng)站都要追求全局的一些樣式的統(tǒng)一,
為此要用reset.css重置一下,然后再用global.css來定義全局樣式。
那我說,為何不直接用global.css取代reset.css的功能?
一樣要定義,何不一步到位?
先重置,再定義,難道是帶寬富余的沒處用了?
舉例來說,上面提到的 strong 和 em 元素。
如果希望全局都是加粗的斜體的,個別地方有其他樣式,那自然無需重置樣式
而如果全局都不要加粗斜體,有統(tǒng)一特殊的強調(diào)樣式,那簡單,直接在global.css里寫就好了。
如果全局都不要加粗斜體,但不同地方有不同樣式,那也簡單,
在global.css寫入重置樣式,都變成正常字體即可,這就是取代了reset.css的功能了。
于是乎,目前我的觀點是:reset.css這種先重置再定義的模式可以放棄了,一步到位,根據(jù)不同網(wǎng)站的特點編寫不同的global.css,效果會更好。
所以,我很支持 No CSS Reset