編寫適合所有項目的通用的reset.css
本文就是來介紹如何寫一個合適所有項目的通用的reset.css,以及介紹在設(shè)置玩reset.css之后需要針對不同項目要首先要設(shè)置的內(nèi)容。
0、引言
每每有新項目,第一步就是應(yīng)當使用一個reset.css來重置樣式。濫用不如不用,直接拿個現(xiàn)成的reset.css過來將導致后期各種離奇bug的發(fā)生。所以最好還是自己寫一個reset.css,并且要明白每一條reset都是用來做什么的。reset.css本意就是重置樣式,我始終建議把.clearfix放入layout.css,而把h1、h2之類的定義放進typography.css。 具體如何規(guī)劃網(wǎng)站CSS結(jié)構(gòu),不在文本討論之列,可以參考Smashing Magazine上的文章,國內(nèi)有差強人意的中文譯版。注意,本文把reset分成了兩個部分,一個是純reset.css,可以用于任何項目。另一個是用于特定項目的“reset”,自定義修改的內(nèi)容,這些內(nèi)容可以放在layout.css、typography.css之類的文件中,他們共同導入到一個base.css形成一個項目的基礎(chǔ)樣式。本文就是來介紹如何寫一個合適所有項目的通用的reset.css,以及介紹在設(shè)置玩reset.css之后需要針對不同項目要首先要設(shè)置的內(nèi)容。
1、基礎(chǔ)
牛頓是站在巨人伽利略的肩膀上的,我們也可以這么做。首先我們要選定一個前進的基礎(chǔ)。
請永遠不要使用
* { margin: 0; padding: 0; }
這問題太多了,在此不多加表述。
目前比較流行的有Eric Meyer的重置樣式和YUI的重置樣式。另有Condensed Meyer Reset簡化Eric Meyer的樣式。有趣的是,Eric的重置樣式也是源于YUI的。而那份簡化版又把Eric的樣式簡化回YUI的樣式了 。但同時,糟糕的是,網(wǎng)上流傳的比較廣的(尤其是國內(nèi))都不是最新的版本。上面兩個頁面里直接看到的都不是最新的,Eric專門為有一個reset.css頁面。而YUI當前版本(2.7.0)的reset.css實際地址里,比上面的頁面中還多一些東西。此外,我們還可以基于一些常見的框架,比較著名的比如Blueprint或者Elements CSS Framework(這個的reset也是源自于Eric Meyer的)。OK,準備工作就差不多了。以上這些都可以作為參考資料來組織我們自己的reset。我這里主要采用YUI,兼帶Eric的reset。
2、默認色彩
對于頁面是不是有默認背景色和前景色,YUI和Eric有著不同的看法。
YUI重置背景色為白色而文字顏色為黑色。
html {
color: #000;
background: #FFF;
}
而Eric在當前最新版中讓所有顏色為透明,他認為透明才是最原始的顏色。雖然他曾一度認為也應(yīng)當設(shè)置白色背景色、黑色文字顏色。至于最后為什么改了,Eric并沒有給出具體理由。
這個問題我基本認為是用戶自定義的更重要還是你的設(shè)計更重要的問題。我個人的觀點是,如果你的設(shè)計本身就是白色背景,那么不要設(shè)置背景。一小部分中高水平的用戶,他們會自定義網(wǎng)頁默認背景色。設(shè)置成他們喜歡的背景色,比如淺藍色?;境R姷臑g覽器都提供了這個簡單的功能。而我們的背景色重置則會破.壞用戶的選擇——盡管這樣能保證你的設(shè)計原汁原味的呈現(xiàn)給所有用戶。當然我知道,更高端的用戶會用Stylish之類的Firefox擴展來自定義頁面。但不得不說,只會用“選項”來調(diào)背景色的用戶更多,不是么?而同時,如果設(shè)計本身就有其他背景色,比如黑色、藍色、綠色之類的,OK,這些設(shè)計當然可以設(shè)置背景色。但請不要放進reset.css里。這里是重置樣式的地方,不是你設(shè)計的地方。請把你的設(shè)計放在更廣袤的土地上。
所以,簡單說來,NO,不要在reset中設(shè)置背景色。
那么,文字顏色呢?原則上來說,也是不應(yīng)該設(shè)置文字顏色的。但是IE中的表單元素中l(wèi)egend這個對象比較特別,跟主題結(jié)合的比較緊密。legend會默認有自己的顏色(跟當前的主題有關(guān))而不會繼承父元素的顏色(即便設(shè)了color:inherit;)。
從某些角度來說,可以想當然地認為設(shè)置字體顏色人數(shù)遠小于設(shè)置背景色的人數(shù);以及認為就算設(shè)置了背景色,人們看到legend元素是黑色的也不會覺得奇怪。因此,YUI在其reset中設(shè)置了legend {color: #000;}是無可厚非的。
但反過來說,把這個放到typography.css或者form.css里豈不是更好?不同的頁面設(shè)計,其對legend的色彩要求很可能是不同的,放在reset.css里重復定義是沒有必要的。因此這條CSS規(guī)則可以作為在reset.css之后首先應(yīng)當設(shè)置的規(guī)則。
相關(guān)文章
- 每個瀏覽器都有一套CSS樣式表用于保證網(wǎng)頁正常顯示,為了精準寫出WEB頁面 通常一開始就重新定義標簽樣式,介紹兩個比較不錯的Reset.css 分別來自雅虎YUI和Eric Meyer2014-01-26
- 全局CSS想必大家并不陌生吧,主要就是一些基礎(chǔ)全局的樣式設(shè)置,提高書寫效率,本文整理了一些方便大家使用,感興趣的朋友可以了解下2013-09-12
- CSS樣式清除和重置是前端開發(fā)必需要做的事情,結(jié)合了前輩們的經(jīng)驗整理了一份CSS重置樣式代碼不敢獨享特此與大家分享下,感興趣的朋友可不要錯過了哈2013-05-20
CSS重置(CSS Reset) 讓網(wǎng)頁樣式在各瀏覽器中表現(xiàn)一致
CSS Reset是指重設(shè)瀏覽器的樣式,在各種瀏覽器中,都會對CSS的選擇器默認一些數(shù)值,譬如當h1沒有被設(shè)置數(shù)值時,顯示一定大小;有了CSS Reset,讓網(wǎng)頁的樣式在各瀏覽器中表現(xiàn)2012-12-21- reset.css本意就是重置樣式,我始終建議把.clearfix放入layout.css,而把h1、h2之類的定義放進typography.css2012-04-01
- 網(wǎng)頁制作Webjx文章簡介:Eric Meyer Reset和YUI Reset都是非常強大的,但是對于我而言,它們走的太遠了。我覺得你最終需要重置一切,然后重新定義所有元素的屬性。這就是為2009-04-02
- 這篇文章主要介紹了CSS樣式重置代碼,一般保存為reset.css修改了默認的css設(shè)置,方便布局與提高瀏覽器兼容性2014-06-11

