實用工具

CSS 壓縮工具

用 CSSO 壓縮 CSS,包含合併重複規則與簡寫屬性的結構最佳化,並顯示 gzip 後節省了多少。

瀏覽器本機執行程式碼轉換3785
免費

輸入

0 B

結果

結果會顯示在這裡。

大多數 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