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 + Ajax调用webService实例代码(asp.net)
Aug 27 Javascript
JS事件在IE与FF中的区别详细解析
Nov 20 Javascript
jquery通过select列表选择框对表格数据进行过滤示例
May 07 Javascript
javascript中不易分清的slice,splice和split三个函数
Mar 29 Javascript
JS弹出窗口插件zDialog简单用法示例
Jun 12 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
Dec 08 Javascript
微信小程序 解决swiper不显示图片的方法
Jan 04 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
Mar 21 Javascript
Vue v-text指令简单使用方法示例
Sep 19 Javascript
微信小程序可滑动周日历组件使用详解
Oct 21 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
Feb 27 Javascript
小程序实现左滑删除的效果的实例代码
Oct 19 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
AM/FM收音机的安装与调试
2021/03/02 无线电
浅谈php冒泡排序
2014/12/30 PHP
分享一则PHP定义函数代码
2015/02/26 PHP
php实现短信发送代码
2015/07/05 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
PHP7新增函数
2021/03/09 PHP
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
JavaScript中创建字典对象(dictionary)实例
2015/03/31 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
ES6的新特性概览
2016/03/10 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
详解JS中的attribute属性
2017/04/25 Javascript
深入理解React高阶组件
2017/09/28 Javascript
Vue.js实现列表清单的操作方法
2017/11/15 Javascript
vuex 项目结构目录及一些简单配置介绍
2018/04/08 Javascript
原生JS实现轮播图效果
2018/10/12 Javascript
JS前端模块化原理与实现方法详解
2020/03/17 Javascript
[01:00:30]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第二场 10.31
2020/11/02 DOTA
利用Psyco提升Python运行速度
2014/12/24 Python
python 实现删除文件或文件夹实例详解
2016/12/04 Python
儿童学习python的一些小技巧
2018/05/27 Python
详解python读取和输出到txt
2019/03/29 Python
CSS3 transition 实现通知消息轮播条
2020/10/14 HTML / CSS
美国嘻哈首饰购物网站:Hip Hop Bling
2016/12/30 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
管理学专业个人求职信范文
2013/09/21 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
刊首寄语大全
2014/04/11 职场文书
交通事故调解协议书
2015/05/20 职场文书
2016银行招聘自荐信
2016/01/28 职场文书
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers