PageSpeed - 減少無用的 CSS
說明
使用 PageSpeed 或 Lighthouse 測試網頁的時候,很容易遇到這個錯誤,原因也如字面上一樣的淺顯易懂,就是 CSS 過大。可參考官方提供的如何減少無用的 CSS 建議作法。
解決方法
我整理了以下幾種解決方法
- 壓縮 CSS
- 減少無用的 CSS
- 拆分檔案
壓縮 CSS
由於有另一個檢測項目就是壓縮 CSS,所以文件沒有寫到,這邊就大概提一下。現在很多框架和工具都可以壓縮 CSS,所以也算是有效又簡單解決方案之一,就不做過多說明。
減少無用的 CSS
如同字面上和官方文件所說,找出並刪除無用的 CSS。然而實務上常常會直接使用 CSS 框架,例如 Bootstrap,很容易就無法通過這項檢測。在允許的情況下,我們可以嘗試只引用需要的部分,例如原本在 SCSS 中引用 Bootstrap 可能是這樣寫:
1 | @import "bootstrap"; |
改為依據實際情況引用需要部分
1 | @import "bootstrap/functions"; |
上面是 Bootstrap 4 的例子,請依據使用的框架版本找到引用的寫法,其他框架應該也能如法泡製。
拆分檔案
這個方法的核心概念就是,優先載入第一個畫面必要的 CSS,其他不是首次繪製畫面需要用到的 CSS,可以延遲或只在需要時載入。詳細作法請參考非同步載入 CSS 這篇文章。上面使用 Bootstrap 框架的案例,可以拆成 Bootstrap 核心的部分和其他次要的部分,例如 modal 和 popover 可以延遲載入。
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 小殘的程式光廊!
Comment