背景:
项目中总有很多界面 需要做大小屏幕适配的兼容,那么怎么能够快速实现这一方案呢,SASS的出现是个非常好用的工具,可以通过自定义函数,来实现自动计算。
方案:vue3 + vite + sass
具体实现细节:
- 创建utils.scss 文件,我的项目中路径 为: src\styles\utils.scss;
- 配置vite.config.js ,实现utils.scss的全局注册
- 就可以在每个vue文件中快乐的使用了
具体代码:
1. utils.scss文件如下:
//使用scss的math函数,https://sass-lang.com/documentation/breaking-changes/slash-div@use "sass:math";//默认设计稿的宽度
$designWidth :1920;
//默认设计稿的高度
$designHeight: 1080;//px转为vw的函数@function vw($px) {@return math.div($px, $designWidth) * 100vw;
}//px转为vh的函数@function vh($px) {@return math.div($px, $designHeight) * 100vh;
}
2. vite.config.js 文件如下:
export default defineConfig({```css: {preprocessorOptions: {scss: {additionalData: `@import "@/styles/utils.scss";`}}},```})
3. vue中的使用方式: 直接使用vw设置宽度,vh设置高度即可,不需要添加px,直接写数值!!!
img {width: vw(130);height: vh(64);}