在 Vue 3 + Vite 项目中使用 Less 实现自适应布局:VW 和 VH 的应用

1. less的计算代码

css 复制代码
@charset "utf-8";
 
// 默认设计稿的宽度(根据开发UI稿更改)
@designWidth: 1920;

// 默认设计稿的高度(根据开发UI稿更改)
@designHeight: 1080;

.vw(@name, @px) {
      @{name}: (@px / @designWidth) * 100vw;
}

.vh(@name, @px) {
      @{name}: (@px / @designHeight) * 100vh;
}

.font(@px) {
      font-size: (@px / @designWidth) * 100vw;
}

2. vite.config.js里面的配置

javascript 复制代码
// https://vite.dev/config/
export default defineConfig(({ mode }) => {
  const { VITE_WEB_BASE_URL, VITE_WEB_PROXY_TARGET } = loadEnv(mode, process.cwd(), '')
  return {
    plugins: [
      vue(),
    ],
    css: {
      preprocessorOptions:{
        less:{
          additionalData:`@import "@/styles/utils.less";` //less工具函数的目录文件 一定要加分号
        }
      }
    },
    // 别名配置
    resolve: {
      alias: {
        '@': path.resolve(__dirname, './src'),
      }
    },
  }
})

3. 使用

css 复制代码
.header-icon {
  .vw(width, 16);
  .vh(height, 18);
  display: flex;
  align-items: center;
  justify-content: center;
}
.result-title {
  width: 100%;
  color: #ffffff;
  .font(18);
  font-weight: 400;
  font-family: "SourceHanSansCN";
}
相关推荐
全栈前端老曹11 分钟前
【ReactNative】核心组件与 JSX 语法
前端·javascript·react native·react.js·跨平台·jsx·移动端开发
用户542778485154018 分钟前
JavaScript 闭包详解:由浅入深掌握作用域与内存管理的艺术
前端
小小黑00718 分钟前
快手小程序-实现插屏广告的功能
前端·javascript·小程序
用户542778485154019 分钟前
闭包在 Vue 项目中的应用
前端
TG:@yunlaoda360 云老大22 分钟前
配置华为云国际站代理商OBS跨区域复制时,如何编辑委托信任策略?
java·前端·华为云
dlhto1 小时前
前端登录验证码组件
前端
@万里挑一1 小时前
vue中使用虚拟列表,封装虚拟列表
前端·javascript·vue.js
黑臂麒麟1 小时前
Electron for OpenHarmony 跨平台实战开发:Electron 文件系统操作实战
前端·javascript·electron·openharmony
wordbaby1 小时前
Tanstack Router 文件命名速查表
前端
1024肥宅1 小时前
工程化工具类:模块化系统全解析与实践
前端·javascript·面试