Webpack打包css后z-index被重新计算的解决方法


Posted in Javascript onJune 18, 2017

发现问题

最近在使用 Webpack 打包 css 文件时,发现了一个问题,发现打包后的 z-index 值跟源文件 z-index 不一致。

如下图,左侧是源文件,右侧是打包后的文件:

Webpack打包css后z-index被重新计算的解决方法

即使加上 !important,经过 OptimizeCssAssetsPlugin 调用 cssProcessor cssnano 处理之后也是 z-index: 2。

因此,很可能是 cssnano 进行了重新计算(cssnano 称为 rebase),而且这种计算是不够准确的。

Webpack打包css后z-index被重新计算的解决方法

因为打包后的文件有两处 z-index,这里是第二处,所以此处 z-index 是 2。

解决方法

cssnano 将 z-index rebase 归类为 unsafe,而不是 bug,只有在单个网页的 css 全部写入一个 css 文件,并且不通过 JavaScript 进行改动时是 safe。

参考:http://cssnano.co/optimisations/zindex/

项目中提取了公共的 css,已经对 layout 设置了很小的 z-index,因此受到 cssnano z-index rebase 的影响。

cssnano 默认进行 z-index rebase。

unsafe (potential bug) 优化项默认不开启应该比较友好。

new OptimizeCssAssetsPlugin({
 cssProcessor: require('cssnano'),
 cssProcessorOptions: {
 discardComments: {removeAll: true},
 // 避免 cssnano 重新计算 z-index
 safe: true
 },
 canPrint: false
})

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jQuery 1.5 源码解读 面向中高阶JSER
Apr 05 Javascript
JS 实现Table相同行的单元格自动合并示例代码
Aug 27 Javascript
查找iframe里元素的方法可传参
Sep 11 Javascript
js读取json的两种常用方法示例介绍
Oct 19 Javascript
jQuery基于扩展简单实现倒计时功能的方法
May 14 Javascript
JS简单获取及显示当前时间的方法
Aug 03 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
Aug 04 Javascript
React实现双向绑定示例代码
Sep 19 Javascript
原生js实现商品放大镜效果
Jan 12 Javascript
js实现手机拍照上传功能
Jan 17 Javascript
Bootstrap表单制作代码
Mar 17 Javascript
Vue.js实现tab切换效果
Jul 24 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
Jun 18 #Javascript
JavaScript ES6中const、let与var的对比详解
Jun 18 #Javascript
jquery DataTable实现前后台动态分页
Jun 17 #jQuery
jQuery Jsonp跨域模拟搜索引擎
Jun 17 #jQuery
vue router路由嵌套不显示问题的解决方法
Jun 17 #Javascript
详解vue+vueRouter+webpack的简单实例
Jun 17 #Javascript
js轮播图无缝滚动效果
Jun 17 #Javascript
You might like
用PHP读取IMAP邮件
2006/10/09 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
php中this关键字用法分析
2016/12/07 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
JSON 学习之完全手册 图文
2007/05/29 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
jQuery获取浏览器中的分辨率实现代码
2013/04/23 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
jquery插件开发之实现google+圈子选择功能
2014/03/10 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
Javascript实现单张图片浏览
2014/12/18 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
微信小程序自动客服功能
2017/11/02 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
JS数组实现分类统计实例代码
2018/09/30 Javascript
从零学Python之入门(三)序列
2014/05/25 Python
Tesserocr库的正确安装方式
2018/10/19 Python
python实现图书借阅系统
2019/02/20 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
日本即尚网:JSHOPPERS.com(支持中文)
2019/12/03 全球购物
日本AOKI官方商城:AOKI西装
2020/06/11 全球购物
淘宝客服自我总结鉴定
2014/01/25 职场文书
交通安全标语
2014/06/06 职场文书
新员工入职欢迎词
2015/01/23 职场文书
报名委托书
2015/01/29 职场文书
《七月的天山》教学反思
2016/02/19 职场文书