2012-07-20 68 views
0

我有大約10個CSS文件。當我使用link標籤正確鏈接他們一前一後,即如何正確合併CSS文件

<link rel="stylesheet" type="text/css" src="..." 

一切加載在所有的瀏覽器。但是當我串起來的所有文件合併成一個單一的文件,在IE的CSS休息。

工作正常FF,Chrome和Safari。我甚至嘗試驗證的CSS只是一堆警告

有什麼想法嗎?

+0

你可以發表你如何鏈接多個樣式表? – 2012-07-20 05:06:15

+0

你得到了什麼警告?發佈代碼有幫助。 – zzzzBov 2012-07-20 05:07:21

+0

您是否按照與頁面中鏈接相同的順序組合CSS文件?你還使用任何IE特定的CSS文件? – kiranvj 2012-07-20 05:07:33

回答

0

您可以使用條件IE標籤來處理IE的怪異例外...

+0

但這裏的奇怪部分是整個CSS不適用。它像我從來沒有寫任何元素的樣式 – Neil 2012-07-20 05:06:28

0

你有沒有試過用進口,使一個CSS叫global.css中採用這種結構:

@import url('/css/typography.css'); 
@import url('/css/layout.css'); 
@import url('/css/color.css'); 

/* All three CSS files above will be loaded from 
    this single document. */ 
0

這聽起來像這樣取決於CSS文件的連接方式。這沒有指定,但是我使用以BOM編碼的UTF-8編碼的文件(如保存爲UTF-8時由記事本生成的文件)進行測試。如果使用簡單連接字節序列的方法將這些文件連接起來,則意味着BOM U + FEFF也會出現在結果文件中,而不僅僅是在開頭。這使得它出現在CSS規則之間,導致語法錯誤(應由W3C CSS Validator報告,但可能在警告中未注意到錯誤消息)。在瀏覽器中,這個語法錯誤似乎導致下一個CSS規則被忽略。

因此,這是猜測,但如果出現在一些原來CSS文件開始的規則是其他瀏覽器上必不可少的IE瀏覽器的渲染,但沒有,那麼症狀是可以理解的。那麼解決方案當然就是連接沒有BOM的文件。