Webpack打包css后z-index被重新計算的解決方法
發(fā)現(xiàn)問題
最近在使用 Webpack 打包 css 文件時,發(fā)現(xiàn)了一個問題,發(fā)現(xiàn)打包后的 z-index 值跟源文件 z-index 不一致。
如下圖,左側是源文件,右側是打包后的文件:

即使加上 !important,經(jīng)過 OptimizeCssAssetsPlugin 調用 cssProcessor cssnano 處理之后也是 z-index: 2。
因此,很可能是 cssnano 進行了重新計算(cssnano 稱為 rebase),而且這種計算是不夠準確的。

因為打包后的文件有兩處 z-index,這里是第二處,所以此處 z-index 是 2。
解決方法
cssnano 將 z-index rebase 歸類為 unsafe,而不是 bug,只有在單個網(wǎng)頁的 css 全部寫入一個 css 文件,并且不通過 JavaScript 進行改動時是 safe。
參考:http://cssnano.co/optimisations/zindex/
項目中提取了公共的 css,已經(jīng)對 layout 設置了很小的 z-index,因此受到 cssnano z-index rebase 的影響。
cssnano 默認進行 z-index rebase。
unsafe (potential bug) 優(yōu)化項默認不開啟應該比較友好。
new OptimizeCssAssetsPlugin({
cssProcessor: require('cssnano'),
cssProcessorOptions: {
discardComments: {removeAll: true},
// 避免 cssnano 重新計算 z-index
safe: true
},
canPrint: false
})
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
JavaScript常用數(shù)組元素搜索或過濾的四種方法詳解
這篇文章主要介紹了JavaScript常用數(shù)組元素搜索或過濾的四種方法,每種方式通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08
JavaScript知識點總結(六)之JavaScript判斷變量數(shù)據(jù)類型
這篇文章主要介紹了JavaScript知識點總結(六)之JavaScript判斷變量數(shù)據(jù)類型的相關資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-05-05

