2010-11-03 17 views
7

我已經繼承了一個擁有數千個選擇器的大規模樣式表,並且我確定其中有很多樣式表是不必要的,並且永遠不會匹配網站上的元素。爲了優化,我想刪除那些孤兒選擇器/規則。如何通過刪除不匹配和/或不必要的CSS選擇器來優化我的樣式表

是否有任何工具可以讓我將CSS與整個網站進行比較,以確定哪些選擇器是必需的,哪些不是?

該網站有AJAX組件,因此編寫一個curl/wget腳本遍歷網站,然後循環遍歷每個選擇器和grep進行匹配也不是特別可行(即使這樣會很有趣......)

歡迎您提出所有建議。

感謝, JD

+0

我會建議使用一種「CSS編譯」,如SASS或者LESS或什麼的。雖然這些不會「優化」,但我發現它們允許的樹結構經常允許我編寫更好的CSS選擇器,因爲它們有助於組織和分離CSS爲更好的邏輯單元。 – 2010-11-03 04:40:52

+0

謝謝@pst,我會檢查出來的。它可能無法幫助繼承遺留的CSS,對吧? – 2010-11-03 04:59:04

+0

通常,我寧願花幾個小時(或幾天)的時間來獲取代碼庫,而不是在幾個月的時間裏通過混淆:-) SASS [在SCSS模式]和LESS都接受有效的CSS語法,因此您可以逐漸更改CSS。 – 2010-11-03 05:37:13

回答

2

有一個名爲「Dust-Me Selectors」的Firefox插件。

https://addons.mozilla.org/en-US/firefox/addon/5392/

「它提取所有從你正在瀏覽的網頁上的所有樣式的選擇,然後分析該網頁,看看有哪些選擇都沒有使用。該數據隨後被存儲,這樣,當測試隨後的頁面,選擇器可以在遇到它們時從列表中移除。「

這是一個相當手動的過程,但可能是你在找什麼。

+0

聽起來很有希望,我會檢查出來。謝謝。 – 2010-11-03 05:21:42

+0

它似乎有點小車,但最好的選擇。謝謝。 – 2010-11-09 08:08:56

1

你可以嘗試許多在線優化的一個,像這樣的:

http://www.cleancss.com/

的羅布森壓縮機顯然不合並和刪除冗餘選擇的最好的工作。

http://iceyboard.no-ip.org/projects/css_compressor

幾個在線優化的有刪除未使用的選擇的能力。

+0

感謝@robert,它看起來會刪除多餘的選擇器,因爲樣式表中的另一個選擇器已經與該元素相匹配,但是我希望它將我的樣式表與所呈現的(X)HTML進行比較,並告訴我哪些選擇器沒有匹配在HTML ... – 2010-11-03 05:00:57

0

檢查CSS覆蓋(Firebug的擴展)http://perishablepress.com/press/2010/06/21/how-to-micro-optimize-your-css/

在我看來不比防塵我selectcor

+0

我沒有看到該鏈接的擴展名,我錯過了什麼? – 2010-11-09 08:12:18

+0

它是在那篇文章的某處,但在這裏爲您的鏈接https://addons.mozilla.org/en-US/firefox/addon/10704/ 記住,它是螢火蟲的延伸,所以請安裝螢火蟲,如果你不沒有它 – 2010-11-09 08:17:46

+0

嗨,它適合你嗎? – 2010-11-11 12:32:10