vw 前端_Vw / Vh 更好的做前端适配

本文介绍了两种使用vw/vh单位进行前端适配的方法。第一种方法是直接使用vw单位,以iPhone 6尺寸为基础进行计算。第二种方法结合vw和rem单位,通过动态调整根元素大小和媒体查询限制,实现更优化的布局效果,确保在不同屏幕尺寸下保持良好显示。
摘要由CSDN通过智能技术生成

做法一:仅使用vw作为CSS单位

sass编译

//iPhone 6尺寸作为设计稿基准

$vm_base: 375;

@function vw($px) {

@return ($px / 375) * 100vw;

}

.mod_nav {

background-color: #fff;

&_list {

display: flex;

padding: vm(15) vm(10) vm(10); // 内间距

&_item {

flex: 1;

text-align: center;

font-size: vm(10); // 字体大小

&_logo {

display: block;

margin: 0 auto;

width: vm(40); // 宽度

height: vm(40); // 高度

img {

display: block;

margin: 0 auto;

max-width: 100%;

}

}

&_name {

margin-top: vm(2);

}

}

}

}

iphone6 375px

网页比例: px : vw() = 1 : 1的写法

设计图为 750 * xxx

比如按钮是600px设计图,但在chrome的iphone6 375px的环境中 ===>>> 2:1

做法二:搭配vw和rem,布局更优化、

于是,联想到不如结合rem单位来实现布局?rem 弹性布局的核心在于动态改变根元素大小,那么我们可以通过:

给根元素大小设置随着视口变化而变化的 vw 单位,这样就可以实现动态改变其大小。

限制根元素字体大小的最大最小值,配合 body 加上最大宽度和最小宽度

// rem 单位换算:定为 50px

$vm_fontsize: 50; // iPhone 6尺寸的根元素大小基准值

@function rem($px) {

@return ($px / $vm_fontsize ) * 1rem;

}

// 根元素大小使用 vw 单位

$vm_design: 750;

html {

font-size: ($vm_fontsize / ($vm_design / 2)) * 100vw;

// 同时,通过Media Queries 限制根元素最大最小值

@media screen and (max-width: 320px) {

font-size: 64px;

}

@media screen and (min-width: 540px) {

font-size: 108px;

}

}

// body 也增加最大最小宽度限制,避免默认100%宽度的 block 元素跟随 body 而过大过小

body {

max-width: 540px;

min-width: 320px;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值