2012-06-20 36 views
5

我有下面的代碼樣式:YUI Compressor和CSS內容?

.author-name:before { 
content:"by: "; 
} 

當我通過YUI壓縮機的運行,我得到:

.author-name:before{content:"by:"} 

這是一個問題,因爲它消滅了預期的空白。我認爲使用YUI壓縮機特別評論,如下所示:

.author-name:before { 
    /*!YUI-Compressor */content: "by: "; 
} 

...可能會有所幫助,但它似乎沒有。此外,評論本身也被消滅了。我的印象是,JavaScript中的評論以/*!get preserved開頭,但實際上並沒有發生。

缺少後處理我的構建過程unminify,有沒有辦法做到這一點?目前,我們正在使用YUI壓縮機的2.3.5版本,並與國旗運行--charset utf8 -v -o

所以我的問題,總之是,有沒有辦法讓YUI壓縮機尊重content:值空間,還是有辦法在塊之前和之後添加CSS註釋我不想縮小?

回答

4

作爲一種變通方法,請嘗試使用而不是空格字符本身unicode的實體:

.author-name:before {content: "by:\00A0"; } 

\00A0尤其是不間斷空格。

+0

這是一個好的解決方法。我仍然希望有一個YUI壓縮機修復程序。瀏覽器支持'\ 00A0'語法,它支持CSS內容的'content'嗎? – artlung

+1

完美支持所有主流瀏覽器,包括IE8 +。我遇到的唯一不一致就是使用複合文字,例如'「foo」「bar」',這個問題在IE中有問題,但我不記得,但事實並非如此。 –

1

你也許保證金添加到內容:

.author-name:before { 
    content: "by:"; 
    margin: 0 .35em 0 0; 
} 
+1

.3em甚至.35em通常更接近空格字符的寬度。 –

+0

好點。使用預期的css屬性來代替空格而不是空格會更好。 – apparat

+0

@MaratTanalin:謝謝,調整。 – erenon

2

我試過你的css使用版本2.3.4和2.4.6,並保留字符串內的空間。所以它可能是一個非常具體的bug(在bug追蹤器中找不到任何東西)或其他錯誤。你確定它是一個ascii空間字符和正則撇號(不是Windows智能的或什麼的)?

當我在同一個css上用unicode字符201C替換ascii引號的一個測試時,左邊的雙引號會被刪除。原因很簡單:解析器不會將其識別爲字符串,因此會剝離空白區域。

無論如何,您可能要嘗試從這裏http://yuilibrary.com/download/yuicompressor/的最新版本。如果您使用某些軟件包管理器安裝了當前版本:只需從存檔「build」文件夾中提取.jar文件即可。

+0

感謝您的檢查。這很奇怪,它的行爲不同。我正在用逃脫的CSS字符串解決這個問題,而且這似乎滿足了我的需求,但是當我們重新訪問這個項目中的工具時,我會嘗試更新版本的YUI Compressor。 – artlung

+0

哦,是的,我很確定它是標準空間,並引用CSS中的字符 - 而不是Windows字符。而這只是空間被剝奪。 – artlung

+0

增加了另一個測試,以澄清有關報價的註釋以及空間被剝離的情況。 –