可视化大屏幕的适配方法-vw/vh

本文介绍了一种基于vw和vh单位的响应式布局方案,通过SASS封装计算函数实现从px到vw/vh单位的自动转换,适用于不同屏幕尺寸的设计稿。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vw和vh适配方案

屏幕视口宽度 = 100vw,屏幕视口高度 = 100vh

       vw和vh也是css中标准的单位,和px,rem, %一样 vw和vh适配方案,按照设计稿的尺寸,将px按比例计算转为vw和vh

       此时运用sass封装一个处理函数,自动计算单位很方便

首先vw和vh的换算公式如下

 假如设计稿宽高为 1920px = 100vw 
               1080px = 100vh
    这样一来,以一个宽300px和200px的div来说,其作所占的宽高,以vw和vh为单位,计算方式如下:
    vwDiv = (300px / 1920px ) * 100vw
    vhDiv = (200px / 1080px ) * 100vh

一 下载sass
 

npm i sass -D

二 使用

1.在src/style下新建一个use.scss文件,定义好设计稿的宽度和高度两个变量

2.使用scss内置的`math.div`函数,定义两个`vw`和`vh`的计算函数

3.传入具体的像素值,其帮我们自动计算出vw和vh的值

use.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;

三 路径配置

(在vite中的使用)vue.config.ts

const path = require('path')
 
function resolve(dir) {
  return path.join(__dirname, dir)
}
 
 
 
module.exports={
	publicPath: '', 
	configureWebpack: {
	  name: "app name",
	  resolve: {
	    alias: {
	      '@': resolve('src')
	    }
	  }
	},
	  css: {
        preprocessorOptions: {
            scss: {
                // 全局 SCSS
                additionalData: '@import "@/assets/scss/ViewPort.scss";'
                // ;不可省略否则会报错
            }
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值