2015-02-11 73 views
0

比方說,我創建的style.css裏面選擇100具有以下模式:什麼是使用大型CSS文件的優點和缺點?

.width-1 {width: 1%;} 
.width-2 {width: 2%;} 
/* up to... */ 
.width-100 {width: 100%;} 

也做同樣的高度,顏色表,包括多種風格。最終結果可能是一個包含大約5000個選擇器並佔用300kB大小的css文件。

問題是:爲什麼要或不應該這樣做?選擇器是否會導致性能問題?

優點:

  • 一個大的CSS文件只需要一個HTTP請求,
  • 我可以加載大量的CSS功能對於每一個網站,爲了以防萬一,

缺點:

  • 顯然 - 大的css文件大小,
  • IE 8-9最多隻能包含4095個選擇器,最多隻能放在一個css文件中,
  • 加載太多樣式的風險將不會在當前視圖中使用。

我感興趣的是針對Android 2.3以上版本和IE8 +

+1

縮小的CSS並添加gzip壓縮文本/ css mimetype – 2015-02-11 13:31:47

+2

如果您打算爲1到100%的每個百分比值創建一個選擇器,那麼您可以在需要時使用內聯樣式。如果您有預定義的寬度(例如12.5) %,25%,37.5%等),然後創建一些類。 – ElGavilan 2015-02-11 13:32:20

+1

如果你的目標是android,你一定不會有那麼大的css文件,不用擔心IE,你甚至不會接近4095 – 2015-02-11 13:33:11

回答

0

的一個大文件的事情是不是太糟糕。這就是爲什麼我們將我們的東西縮小/連接成單個文件。問題是當你使用那麼多的實用程序類時,很多實用程序類都不會被使用。每個選擇器都會使瀏覽器查找該類的所有元素。所以這是一大堆(毫無價值)檢查,看看有沒有東西。

如果你想有一大堆實用程序風格的東西容易使用,你應該考慮在sass或更少的一些mixin。這樣你的CSS將不會包含儘可能多的未使用/無用的內容(和選擇器)。

所以我不會說文件大小不好,它更多的是你顯示的選擇器的極端緩慢和無用。

+0

在一天結束時sass文件被編譯爲使用與純Css文件相同數量的選擇器的css。 – 2015-02-11 13:39:00

+0

不,mixins只會添加到您的文件的大小,如果你使用它。我的建議是不要將所有這些類都添加到一個css文件,因爲它們沒有意義。相反,如果需要,mixin會以%爲單位輸出寬度。所以這是在你的CSS更少的選擇器,因爲樣式是一個更有用的選擇器 – donnywals 2015-02-11 13:41:36

0

顯然每個寬度,高度,顏色和更多的每個單獨的類都添加了一些愚蠢的東西。這只是內聯CSS的一種解決方法。你不妨使用內聯CSS,每個人都會變得更好。

要回答你的問題: 使用大型CSS文件可能會有很大的性能問題。使用許多CSS文件的 也可能不是一個選項。 iOS僅支持每個文檔包含的有限數量的CSS文件。 (我不能找到參考

結論:不要做其他人一樣,並定義樣式像CSS一類特殊的意思是

相關問題