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 相关文章推荐
datePicker——日期选择控件(with jquery)
Feb 20 Javascript
父子窗体间传递JSON格式的数据的代码
Dec 25 Javascript
初识JQuery 实例一(first)
Mar 16 Javascript
JavaScript对象的property属性详解
Apr 01 Javascript
JavaScript脚本判断蜘蛛来源的方法
Sep 22 Javascript
JavaScript6 let 新语法优势介绍
Jul 15 Javascript
利用JS实现数字增长
Jul 28 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
Mar 30 Javascript
SpringMVC+bootstrap table实例详解
Jun 02 Javascript
深入浅析Vue不同场景下组件间的数据交流
Aug 15 Javascript
JS选取DOM元素常见操作方法实例分析
Dec 10 Javascript
详解ECMAScript2019/ES10新属性
Dec 06 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
下载文件的点击数回填
2006/10/09 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
jQuery构造函数init参数分析
2015/05/13 Javascript
用Move.js配合创建CSS3动画的入门指引
2015/07/22 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
2018/02/23 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
2018/10/10 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
Python聚类算法之DBSACN实例分析
2015/11/20 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
2017/07/24 Python
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
对numpy中shape的深入理解
2018/06/15 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
python元组和字典的内建函数实例详解
2019/10/22 Python
Python接口自动化判断元素原理解析
2020/02/24 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
CentOS 7如何实现定时执行python脚本
2020/06/24 Python
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
Keds官方网站:购买帆布运动鞋和经典皮鞋
2016/11/12 全球购物
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
就业推荐表自我鉴定
2013/10/29 职场文书
最新会计专业求职信范文
2014/01/28 职场文书
2016优秀教师先进个人事迹材料
2016/02/25 职场文书