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 相关文章推荐
Prototype 学习 工具函数学习($w,$F方法)
Jul 12 Javascript
js跟随滚动条滚动浮动代码
Dec 31 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
Jun 02 Javascript
javascript倒计时功能实现代码
Jun 07 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
Apr 01 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
Jul 05 Javascript
AngularJS 2.0新特性有哪些
Feb 18 Javascript
js实现适配不同的屏幕大小
Apr 10 Javascript
vue 循环加载数据并获取第一条记录的方法
Sep 26 Javascript
深入学习Vue nextTick的用法及原理
Oct 08 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
Sep 07 Javascript
springboot+VUE实现登录注册
May 27 Vue.js
利用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 Memcache 中实现消息队列
2009/11/24 PHP
PHP分页类集锦
2014/11/18 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
JavaScript中yield实用简洁实现方式
2010/06/12 Javascript
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
在新窗口打开超链接的方法小结
2013/04/14 Javascript
jQuery避免$符和其他JS库冲突的方法对比
2014/02/20 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
2015/10/25 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
JavaScript设计模式之职责链模式应用示例
2018/08/07 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
Python 文件读写操作实例详解
2014/03/12 Python
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
Selenium的使用详解
2018/10/19 Python
Django框架模板介绍
2019/01/15 Python
python conda操作方法
2019/09/11 Python
使用浏览器访问python写的服务器程序
2019/10/10 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
html5 标签
2009/07/16 HTML / CSS
iRobot官网:改变生活的家用机器人品牌
2016/09/20 全球购物
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
《商鞅南门立木》教学反思
2014/02/16 职场文书
运动会铅球比赛加油稿
2014/09/26 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
JVM钩子函数的使用场景详解
2021/08/23 Java/Android
人民币符号
2022/02/17 杂记