實用工具
輸入
結果
結果會顯示在這裡。大多數 CSS 壓縮工具只會刪除空白與註解。CSSO 還會重組結構:合併宣告完全相同的規則,把 margin-top、margin-right、margin-bottom 和 margin-left 合併成一個 margin 簡寫,把 padding: 8px 16px 8px 16px 縮短為 8px 16px,並把 #ffffff 改寫成 #fff、0px 改寫成 0。它是 postcss-csso 和 gulp-csso 背後的引擎。貼上樣式表,看看瀏覽器實際需要其中多少,原始大小與 gzip 後的大小都會列出。
它是怎麼運作的
- 壓縮前會先解析一次樣式表,有語法錯誤就回報列號,否則 CSSO 會不發一語地丟掉出錯的規則。
- 關閉結構重組後,CSSO 只做安全的局部修改:空白、註解、顏色和數字。
- /*! 註解預設保留以符合授權要求;關閉這個選項則移除所有註解。
你的資料去了哪裡
哪也沒去。本工具完全在你的瀏覽器裡執行:你貼上的文字由頁面處理,不會傳輸到任何伺服器,也不會寫進任何紀錄。
本工具免費且免登入,執行結果只存在於你目前的頁面裡,不會被儲存到任何地方。
它要花多少
本工具完全免費,不需要登入,也不消耗點數。
常見問題
- 結構重組安全嗎?
- 它的設計目標是保留原有行為:只有在 CSSO 能證明串接結果相同時,才會合併或移動規則。少數例外是依賴瀏覽器 hack,或依賴無效宣告以特定方式被忽略的樣式表。如果壓縮後的 CSS 呈現結果不同,請關閉結構重組再比較。
- 為什麼我的 CSS 被拒絕了?
- 像 color red 這樣缺少冒號的宣告,或選擇器中未關閉的括號,都是語法錯誤。瀏覽器會略過這類規則,CSSO 也會,而且毫無聲息。停下來並指出列號,代表你能修正錯誤,而不是上線一份少了你以為存在的規則的樣式表。
- 支援巢狀、@layer 和 @container 這類現代 CSS 嗎?
- 自訂屬性、@layer 和 @container 都沒問題。原生 CSS 巢狀則不行:CSSO 的解析器比它更早出現,會把巢狀規則直接丟掉,所以這個工具會以解析錯誤停止。請先把巢狀規則攤平,或交給 Lightning CSS 這類建置工具處理整個流程。
- CSSO、cssnano 還是 Lightning CSS?
- 在一般的樣式表上,它們最後的大小相近。cssnano 是一組 PostCSS 外掛;Lightning CSS 以 Rust 撰寫,還能處理廠商前綴並將新語法降轉;CSSO 的強項則是結構合併。CSSO 的解析器沒有跟上原生巢狀這類較新的語法,如果你的樣式表用到了,這一點就很重要。
背後的開源專案
本工具執行在 css/csso 之上,以 MIT 授權發布。如果你需要在自己的程式裡實作同樣的能力,直接用這個函式庫。
css/csso也常被稱作
- css 壓縮
- css 線上壓縮
- css 壓縮工具
- csso 線上
- css minify
- css minifier