问题合集更更更之cssnano配置导致打包重新计算z-index

news2024/9/20 8:16:13

前言

👏问题合集更更更之cssnano配置导致打包重新计算z-index~

🥇记得点赞+关注+收藏!

1.问题描述

代码中写了样式代码,z-index层级关系

z-index:2029;

进行打包之后,发布到环境中,发现层级变了

z-index:4;

2.问题原因

首先排查打包配置,发现有引入cssnano(版本5.x),并有如下配置

css: {
    postcss: {
      plugins: [
        cssnano({
          preset: "advanced",
        }),
      ],
    },
  },

preset表示传递一个预设以选择一组预先配置的优化,advanced则是应用一系列高级优化。cssnano的预设为advanced,在优化时就会重新计算和重新排序 z-index 值,导致z-index数值超出预期。

3.解决步骤

注:cssnano版本不同,配置项存在变化

在保留advanced高级优化的前提下,单独设置zindex: false ,不进行重新计算和重新排序;

vite.config.js:

export default defineConfig({
  css: {
    postcss: {
      plugins: [
        cssnano({
          preset: ["cssnano-preset-advanced", {
              // 打包不修改zIndex
              zindex: false ,
              // ... 其他配置
          }],
        }),
      ],
    },
  },
});

4.cssnano了解

介绍

‌cssnano是一个基于PostCSS的CSS优化工具。

cssnano的主要功能是对CSS文件进行多方面的优化,以确保最终生成的文件对生产环境来说体积是最小的。它通过采用格式良好的CSS并通过许多优化措施,来确保最终的生产环境中的文件尽可能小。

cssnano的优化措施可能包括但不限于压缩CSS代码、合并选择器、删除未使用的样式等,从而减小文件大小,提高网页加载速度。这种优化对于大型且杂乱的CSS文档尤为重要,因为如果CSS文档大且杂乱,网站的加载时间就会变长。通过使用cssnano,可以有效地管理和优化CSS,使得网站的性能得到提升‌12。

此外,cssnano作为PostCSS的一个插件,可以集成到构建过程中,自动化地处理CSS文件,无需手动进行复杂的优化操作。这对于开发人员来说,不仅提高了工作效率,也确保了网站的性能和用户体验‌

相关地址:

github地址:

https://github.com/cssnano/cssnano

npm地址:

https://www.npmjs.com/package/cssnano

文档地址:

https://cssnano.github.io/cssnano/

安装

cssnano是一个PostCSS插件,所以运行cssnano还需要安装PostCSS。

npm install --save-dev postcss-cli

preset支持类型:

  1. default

默认预设,提供基本的 CSS 优化。

  1. advanced

提供更加激进的优化,可能会更改 CSS 的样式,但可能会破坏某些依赖于特定布局的网页。

默认情况下,高级转换没有与cssnano捆绑在一起,所以需要安装预设

npm install cssnano-preset-advanced --save-dev

preset支持多种配置方式:

在这里插入图片描述

转换策略

根据配置的预设cssnano,优化是不同的;使用默认预设,我们只提供安全转换。
具体支持如下(更多详情参考文档)

Optimisationdefaultadvancedlite
autoprefixer
cssDeclarationSorter
calc
colormin
convertValues
discardComments
discardDuplicates
discardEmpty
discardOverridden
discardUnused
mergeIdents
mergeLonghand
mergeRules
minifyFontValues
minifyGradients
minifyParams
minifySelectors
normalizeCharset
normalizeDisplayValues
normalizePositions
normalizeRepeatStyle
normalizeString
normalizeTimingFunctions
normalizeUnicode
normalizeUrl
normalizeWhitespace
orderedValues
reduceIdents
reduceInitial
reduceTransforms
svgo
uniqueSelectors
zindex

配置

可以在项目的根目录下创建postcss.config.js文件来配置cssnano或者在打包配置文件中出来(如vite.config.js)

postcss.config.js:

module.exports = {
  plugins: [
    cssnano({
     preset: ['default', {
        // 在这里配置或覆盖默认预设中的选项
        // 例如,你可以启用或禁用某些特定的插件
        // 打包不修改zIndex
        { zindex: false }
        // ... 其他配置
      }],
    })
  ],
};

vite.config.js:

export default defineConfig({
  css: {
    postcss: {
      plugins: [
        cssnano({
          preset: ["cssnano-preset-advanced", {
              // 打包不修改zIndex
              zindex: false ,
              // ... 其他配置
          }],
        }),
      ],
    },
  },
});

5.写在最后🍒

看完本文如果觉得对你有一丢丢帮助,记得点赞+关注+收藏鸭 🍕
更多相关内容,关注🍥苏苏的bug,🍡苏苏的github,🍪苏苏的码云~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2109661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《机器学习》PCA数据降维 推导、参数讲解、代码演示及分析

目录 一、主成分分析 1、什么是主成分分析? 2、什么是降维? 3、如何进行主成分分析 1)数据标准化 2)计算协方差矩阵 3)计算特征值和特征向量 4)选择主成分 5)构建投影矩阵 6)数据…

中学理化生实验室如何建设及配置

近年来,各地教育部门陆续出台“关于推进普通中小学校科学类实验室建设”的相关要求,针对小学、初中、高中学段的实验室等设施设备配备提出了标准指引,提升教育装备水平,助力打造品质教育。本文就中学理化生实验室建设要求及配置进…

【ant-design】Table如何设置Empty文案并保留图标

如果只设置了文案&#xff0c;那么为空的时候&#xff0c;并不会有图标 这时候我们可以设置emptyText: <Empty image{Empty.PRESENTED_IMAGE_SIMPLE} description{"没有数据"}/> 即可保留图标

产品经理入门基础

什么是产品&#xff1f; 什么是产品经理&#xff1f; 想清楚产品怎么做的人 1.什么是产品?区别是? 能够解决某个问题的东西就是产品有形的产品、无形的产品2.什么是产品经理? 想清楚产品怎么做的人就是产品经理3.合格的产品经理需要关注哪些核心问题? 用户、场景、需求功能…

k8s工作负载控制器--Statefulset

文章目录 一、概述二、引入"有状态"需求1、管理无状态服务的 Deployment 实现了什么1.1、创建 Deployment1.2、验证 Pod 数量1.3、配置更新策略&#xff08;更新镜像版本&#xff09;1.4、观察更新过程1.5、验证更新后 Pod 的状态1.6、回滚 Deployment 2、新需求分析…

iptable 理解

iptable 理解 这个当初我理解不了&#xff0c;主要是没把netfilter理解清楚。 Netfilter是集成在内核中的&#xff0c;用来定义存储各种规则的。Iptalbe是修改这些规则的工具&#xff0c;修改后存在netfilter里面。 数据包进入LINUX服务器时&#xff0c;先进入服务器的netfilt…

Leetcode 72. 编辑距离 动态规划 优化 C++实现

Leetcode 72.编辑距离 问题&#xff1a;给你两个单词 word1 和 word2&#xff0c; 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作&#xff1a;插入一个字符&#xff0c;删除一个字符&#xff0c;替换一个字符。 算法1&#xff1a;递…

9-6springboot该如何学习

这阶段如何学习 javase&#xff1a;面向对象OOP mysql:持久化 htmlcssjsjquery框架&#xff1a;视图&#xff08;框架不熟练&#xff09;&#xff0c;css不好 javaweb&#xff1a;独立开发MVC三层架构的网站&#xff1a;原始 ssm&#xff1a;框架&#xff1a;简化了我们的…

【课程学习】信号检测与估计

文章目录 3.7-CRB延展到向量的形式3.8-参数变换形式的CRB CRB for transformation, pp45-463.9-高斯分布 CRLB for the General Gaussian Case3.7-CRB延展到向量的形式 0904 向量和变换形式的CRLB形式 估计参数真实值 θ \theta θ,估计值 θ ^ \hat \theta θ^ 与信号与系统…

AcWing算法基础课-786第k个数-Java题解

大家好&#xff0c;我是何未来&#xff0c;本篇文章给大家讲解《AcWing算法基础课》786 题——第 k 个数。本篇文章详细解析了如何使用 Java 实现快速排序算法&#xff0c;以解决查找数组中第 k 个元素的问题。通过深入浅出的讲解&#xff0c;展示了从输入读取到快速排序实现的…

Java程序打jar包(包含作者各种踩坑案例,力求为大家避雷)

一、诉求 将一个spring boot项目打包成一个jar包&#xff0c;直接在windows或者linux系统下直接命令行运行。 二、配置步骤 1、编写assembly.xml配置文件&#xff08;放在pom.xml同级目录&#xff09; <?xml version"1.0"?> <assembly><id>T…

GAN生成器好坏之评价方法

我们产生出来的生成器它好或者是不好。要 评估一个生成器的好坏&#xff0c;最直觉的做法也许是找人来看生成器产生出来的图片到底像不像真 实的图片。所以其实很长一段时间&#xff0c;尤其是人们刚开始研究生成式技术的时候&#xff0c;很长一段时间 没有好的评估方法。那时候…

群晖NAS安装(一)

主要教程参考 https://zhuanlan.zhihu.com/p/515187738?utm_id0&wd&eqide69f50bb0000263900000006645b5680 系统是DS3617xs DSM6.1.3 一 准备工作 旧16G U盘一个 软件: diskgenius 分区工具 win32diskimager 写入工具 chipeasy或者chipgenius 识别工具 二 安装 分区…

log4j2 与 log4j使用时的几点小区别 - log4j2上手说明

虽然log4j2 目前还是beta版&#xff0c;不过OneCoder已经忍不住要尝试一下。跟使用log4j 比起来&#xff0c;上手上主要的区别有。 1、依赖的jar包。使用slf4jlog4j2 时&#xff0c;依赖的jar包如下&#xff1a;( gradle配置&#xff0c;Maven对照修改即可) dependencies{ com…

SAP与湃睿PLM系统集成案例

一、项目背景 浙江某家用电机有限公司, 该公司的产品涵盖洗衣机、‌空调、‌冰箱及厨房用具等家电电机的制造&#xff0c;‌具备年产4600万台电机的生产能力&#xff0c;‌是中国最大的家电电机生产基地之一。 为确保工艺路线信息在设计与生产执行层面的无缝传递&#xff0…

python多进程

文章目录 1、前言2、示例3、参考 1、前言 python中使用多进程&#xff0c;可以加快代码的运行速度&#xff0c;更高效地进行相关工作。 2、示例 使用蒙特卡洛方法计算 π \pi π来进行使用多进程前后代码运行速率的对比&#xff1b; import random import multiprocessing as…

信也科技基于 Apache SeaTunnel金融场景的应用实践探索

前言 作者&#xff1a;朱俊&#xff0c;信也科技&#xff0c;数据开发专家 离线开发一直是数据仓库建设中重要的一个环节。信也科技之前基于Azkaban构建了离线任务调度与开发平台&#xff0c;承载了公司90%以上的离线任务调度需求&#xff0c;以及玄策变量平台的每日变量跑批产…

爵士编曲:如何编写爵士鼓

音源选取 使用ssd鼓写爵士乐&#xff0c;使用其中的豪华爵士音源&#xff0c;然后选其中的第一个或第二个都可以。 或者用add鼓studio drummer中的爵士鼓也可以 ​Cubase图示 用swing的律动把叮叮镲写上 然后第三拍加上踩镲

【截图服务 +打包】pkg打包 puppeteer

目录 最后结论 遇到的问题与解决 版本匹配问题 参考文档 最后结论 pkg -t win --public ./screenshots.js --output ./dist/screen.exe 服务启动&#xff1a; postman调用 &#xff1a; 遇到的问题与解决 版本匹配问题 pkg 这里说的是v3.5,实际装的是5.8.1&#xff0c;…

【ArcGIS Pro实操第二期】最小成本路径(Least-cost path)原理及实操案例

ArcGIS Pro实操第一期&#xff1a;最小成本路径原理及实操案例 概述&#xff08;Creating the least-cost path&#xff09;1.1 原理介绍1.2 实现步骤1.3 应用案例 2 GIS实操2.1 工具箱简介2.1.1 成本路径&#xff08;Cost path&#xff09;2.1.2 成本距离&#xff08;Cost dis…