首页 > 其他分享 >postcss px转vw

postcss px转vw

时间:2023-08-14 21:22:18浏览次数:35  
标签:postcss px 视口 vw true viewport

为什么要使用Postcss(px-to-viewport)

在移动端开发中,我们通常采用rem或者vw&vh这两种方式来适配不同设备的屏幕大小。rem的缺点是需要进行频繁的计算和换算,而vw&vh的缺点则是部分设备支持不尽如人意。而使用Postcss(px-to-viewport)可以自动将px转换为vw或者vh,省去了繁琐的转换计算并且适配效果更佳。

使用Vite快速集成Postcss(px-to-viewport)

postcss-px-to-viewport 不适配最新版本的postcss8 所以安装 postcss-px-to-viewport-8-plugin

在vite.config.ts中

import postcsspxtoviewport8plugin from 'postcss-px-to-viewport-8-plugin';


export default defineConfig(({ command, mode, ssrBuild }) => {
  return {
    ...tempvariable[command](),
    css: {
      postcss: {
        plugins: [
          postcsspxtoviewport8plugin({
            unitToConvert: 'px',
            // viewportWidth: file => {
            //   let num = 1920;
            //   console.log(file)
            //   if (file.indexOf('m_') !== -1) {
            //     num = 375;
            //   }
            //   return num;
            // },
            viewportWidth: 1920,
            unitPrecision: 5, // 单位转换后保留的精度
            propList: ['*'], // 能转化为vw的属性列表
            viewportUnit: 'vw', // 希望使用的视口单位
            fontViewportUnit: 'vw', // 字体使用的视口单位
            selectorBlackList: [], // 需要忽略的CSS选择器,不会转为视口单位,使用原有的px等单位。
            minPixelValue: 1, // 设置最小的转换数值,如果为1的话,只有大于1的值会被转换
            mediaQuery: true, // 媒体查询里的单位是否需要转换单位
            replace: true, //  是否直接更换属性值,而不添加备用属性
            exclude: [/node_modules\/ant-design-vue/], // 忽略某些文件夹下的文件或特定文件,例如 'node_modules' 下的文件
            include: [], // 如果设置了include,那将只有匹配到的文件才会被转换
            landscape: false, // 是否添加根据 landscapeWidth 生成的媒体查询条件 @media (orientation: landscape)
            landscapeUnit: 'vw', // 横屏时使用的单位
            // landscapeWidth: 1024, // 横屏时使用的视口宽度
          }),
        ]
      }
    },
    server: {
      proxy: {
        '/api': {
          target: loadEnv(mode, process.cwd(), '').VITE_BASEURL,
          changeOrigin: true,
          rewrite: (path) => path.replace(/^\/api/, ''), //路径重写,把'/api'替换为''
        },
      },
    },
    // 源代码映射
    devSourcemap: true
  }
})

标签:postcss,px,视口,vw,true,viewport
From: https://www.cnblogs.com/zychuan/p/17629795.html

相关文章

  • virtualenvwrapper 使用流程
    virtualenvwrapper使用流程virtualenvwrapper基于virtualenv,可以更方便的管理Python虚拟环境,virtualenvwrapper-win依赖于virtualenv,所以也要安装virtualenv。需要注意的是,virtualenvwrapper在Windows系统中只能通过cmd才能正常使用一、安装virtualenvwrapper-win......
  • PXE操作过程 kickstart 无人值守安装
    PXE操作过程分配给同一局域网内新加机器的地址(配置文件)dhcp分配地址指明tftp服务器的地址tftp服务端开启udp配置默认关闭安装syslinux取得pxelinux.0文件安装vsftpd服务挂载软件安装源(mount/dev/sr0/var/ftp/centos7)将四大文件拷入(/var/lib/tftpboot......
  • CentOS系统上部署PXE服务器步骤
    安装Apache首先,需要安装Apache服务器。可以使用以下命令安装:yuminstallhttpd配置Apache接下来,需要配置Apache服务器,使其能够正确响应PXE请求。在httpd.conf文件中,找到以下行:<Directory"/var/www/html">将该行的AllowOverride选项设置为All,以便能够使用.htaccess文件进行配置。然......
  • npm npx nvm nrm 你分的清吗
    npm是什么?npx是什么?nvm又是什么?nrm又是什么?你分的清吗npmnpm的全称是NodePackageManager是JavaScript世界的包管理工具,并且是Node.js平台的默认包管理工具。通过npm可以安装、共享、分发代码,管理项目依赖关系。常用命令npminstall安装模块npmuninstall卸载模......
  • pikachu与DVWA暴力破解账号密码
    pikachu和DVWA暴力破解账号密码pikachu靶场1. 打开小皮,激活pikachu本地靶场,再打开burpsuite,最后打开firefox浏览器,激活burpsuite代理2. 随便输入一个账号和密码,例如账号输入admin,密码输入1234563. 此时burpsuite已提示抓取成功,右键空白处,选择sendtointruder4.......
  • 6PXY1ZZ2v
    有一种流传已久的说法,那就是我们只使用了大脑的10%。这个陈述对我产生了深深的影响,使我想要深入探究它的真实性。作为一名对神经科学充满热情的研究者,我决定深入研究这个问题。解开大脑的神秘面纱在开始探索前,我想要先纠正一个误解。实际上,我们在任何时候都在使用大脑的全部区域......
  • xss--dvwa靶场
    xssreflectedlowpayload:<script>alert('xxx')</script>medium防御措施:使用str_replace函数替换了所有的<script> 绕过:str_replace对大小写并不敏感,或者双写绕过payload:<Script>alert('xxx')</script><scr<script>ipt>alert(&#......
  • PXE
    一.什么是pxePXE的全称是prebootexecuteenvironment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。pxe是通过网卡引导启动1.1实现的硬件条件1.BIOS支持2.网卡支持(现......
  • Linux中PXE高效批量网络装机和无人值守安装
    1、PXE1.1什么是PXEPXE是由lntel公司开发的网络引导技术,工作在CIient/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。PXE严格来说并不是一种安装方式,而是一种引导的方式。进行PXE安装的必要条性是要安装的计算机中包含个PXE......
  • Linux之pxe
    二、操作[root@localhost~]#systemctlstopfirewalld[root@localhost~]#setenforce0[root@localhost~]#yuminstalldhcp-y[root@localhost~]#cp/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example/etc/dhcp/dhcpd.confcp:是否覆盖"/etc/dhcp/dhcpd.conf"?y......