前端h5界面适配 vw、vh、rem单位的运用

插曲:js关闭当前页面

适配重点:

        如果整体样式按照设计稿等比例缩放(所有元素及间距采用vw为单位)会有问题的话,那就在保证所有元素(图片、文字)都不变形的前提下,自我调整元素间距

项目配置:

  • 设计稿宽度:750px
  • IDE软件:Vscode(Visual Studio Code
  • px转rem、vw、vh、vmin、vmax单位插件:px to rem & rpx & vw (cssrem) v3.0.2

基础知识:

(1)Viewport(视口宽度):就是用户当前看到的区域

(2)视口的设置:<meta name=“viewport” content=“width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0”>,这个属性只对移动端设备起作用,对pc端不起作用

(3)媒体查询:

        ①max-width/min-width:配置最大、最小宽度范围

                @media screen and (max-width :750px){ // 样式配置 }

        ②orientation:配置视口方向

               landscape横屏适配(即宽度大于高度)@media screen and (orientation:landscape){ //样式配置 }  

               portrait纵向设备(即高度>宽度)@media screen and (orientation:portrait){ //样式配置 }  

单位:

vw:一般将整个视口宽度划分为100份,那么1vw=1/100的视口宽度(如设计稿宽度为750,那么1vw=7.5px),随视口宽度变化;

vh:视口高度(用的较少);

rem(root em):一般以屏幕宽度的1/10作为初始html的font-size大小,如设备宽度750px,设置html{ font-size:75px;},则1rem= 1/10的视口宽度 = 75px);缺点:需要动态设置根尺寸的font-size;

vmin:视口宽度vw和视口高度vh两者之间最小值,如750px*800px,1vmin = 7.5px;

vmax:视口宽度vw和视口高度vh两者之间最大值,上例1vmax= 8px;

实现:

(设计稿:750px*1314px)

html文档结构:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">    <!--视口宽度设置-->
    <link rel="stylesheet" href="./css/download.css">  <!--引入css样式-->
    <link rel="stylesheet" href="./css/meida.css" media="screen and (orientation:landscape)"> <!--横屏适配-->
    <title>only vw</title>
</head>
<body>
    <header> 
        <!-- <img class="delete" src="./images/delete.png" alt="图片走丢啦~" onclick="closeBrower()"> -->
        <h1>APP个人中心信息</h1>
    </header>
    <!--遮罩层-->
    <div id="mask" ref="mask" style="z-index: 2;display: none;" onclick="doNothing()">
        <img id="maskimg" src="./images/px2mask.png" alt="图片走丢啦~">
    </div>  
    <div id="download">
        <div>
            <img class="logo" src="./images/logo.jpg" alt="图片走丢啦~">
            <h2>贝小米</h2>
            <h3>做个细节怪</h3>
        </div>
        <div class="download_btn">
            <p>前往个人中心<a href="#" class="open_school">作品集合</a>&nbsp;&nbsp;<a href="#" class="open_parent">数据分析</a></p>
            <div class="im_download"><div class="im_school" onclick="downloadSchool(`https://www.baidu.com`)">写文章</div><div class="im_parent" onclick="downloadParent(`https://www.baidu.com`)">草稿箱</div> </div> 
        </div>
    </div>
    <script type="text/javascript" src="./js/events.js"></script>  <!--引入js文件-->
</body>
</html>

插件配置: 

  •  配置插件设计稿宽度为 750,启用vw、rem支持;
  • 在.less 或 .css 文件中按照设计稿输入每个元素的宽高,会提示自动转成rem单位;

(1)完全采用vw作为元素和间距的单位

        页面整体等比例缩放,部分设备屏幕内容会超出一屏显示(出现纵向滚动条)

(2)手机和横屏设备分开设置

        保证元素等比例缩放(不变形),间距自适应

        ① 手机设备(宽度 > 高度):

             文字属性、图片属性、标签属性、大的模块盒子的宽度及左右间距采用vw;(插件尺寸750)

             大的模块盒子的高度及上下间距采用vh;(插件尺寸1314)

             背景图片采用vmin等比例缩放;(插件尺寸1314)

        ② 横屏设备(宽度 > 高度):利用媒体查询,横屏设备采用对应样式覆盖手机样式(未重新赋值的样式会继承手机设备的样式);

              大的模块盒子的高度及上下间距采用vh;(插件尺寸1314)

              文字属性、图片属性、标签属性采用vmin;(插件尺寸1314)

              上下间距采用vh、左右间距采用vw;(插件尺寸1314)

 

 

gyuhao_o
关注 关注
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用vw进行移动端的适配_如何利用vw+rem进行移动端布局
weixin_28937075的博客
02-05 631
你还在用rem弹性布局吗?在html文件头部放入一大段压缩过的js代码,是不是让你很难受?来了解下vw吧,能让你的代码更纯粹简单介绍下rem布局方案rem是css中的长度单位,1rem=根元素html的font-size值。当页面中所有元素都使用rem单位时,你只需要改变根元素font-size值,所有元素就会按比例放大或者缩小。因此我们只需要写一小段js代码,根据屏幕宽度改变html的font-...
浅析rem和em和px vh vw和% 移动端长度单位
09-24
下面小编就为大家带来一篇浅析rem和em和px vh vw和% 移动端长度单位。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧
H5使用rem移动端适配方案
qq_44552416的博客
03-23 1601
谈到rem,我们首先就要说一下移动端的适配问题: 由于移动设备的尺寸不一,所以移动端的页面要能够适应不同尺寸的设备,即页面的自适应,让页面在视觉上保持一致。rem:rem 是css3的一种相对单位,参考是根元素HMTL的font-size的值,即html的;那么 **1rem = 10px;**我们使用rem主要作用就是为了适配移动端不同屏幕对应尺寸单位大小的区别来达到兼容效果。
仿京东移动端首页布局(固定尺寸、rem适配vw适配
08-23
仿京东移动端首页布局,包括固定尺寸布局、rem适配布局、vw适配布局,设计稿尺寸使用的iPhoneXR的414px * 896px。 我们可以通过在不同移动端设备上展示移动端网页,发现固定尺寸布局的不足之处,以及rem适配vw适配的原理。 其中vw适配的网页css使用的是scss语法,使用了函数、变量、嵌套等语法。
Vue进阶(幺陆捌):前端用户体验提升(三)应用vw vh实现自定义布局_vue 开发官网的动态布局用vhvw还是
最新发布
2401_84412953的博客
05-08 655
javascript前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用
H5开发:横屏适配
weixin_30415801的博客
04-19 1144
平常我们做过的需求里,主要是以竖屏式为主,而横屏式较少。对于竖屏式场景来说,大家的经验会比较丰富,因此,此次主要式探讨下横屏式场景下的一些需要注意的点,特别是怎样去做横屏适配。 对于 H5 横屏页面来说,要实现横屏的话,主要是解决两点:1.无论用户手持方向如何,都需要保证屏幕横向显示。2.由于屏幕分辨率的多样化,因此就算是横屏下也是需要进行横屏适配,保证页面在所有分辨率下都能够合理适配。 强制...
vue3+vite,大屏项目配置px转vhvw方式
wxiaobaiz的博客
04-28 593
vue3+vite,大屏项目配置px转vhvw方式
前端插件&工具》
maeryang0510的博客
05-17 2332
一件事,不管是太晚还是太早,都不会阻止你成为你想成为的人。这个过程没有时间限制,只要你愿意,你可以随时开始。
vue 移动端开发vw适配方案&rem适配方案 + vant框架 + unocss|tailwindcss
u014632228的博客
07-05 9409
vue 移动端 rem适配方案&vw适配方案
移动适配的另一种方式—— vw / vh
m0_75195798的博客
11-17 2037
移动适配的另一种方式—— vw / vh
移动端适配
m0_65382120的博客
08-12 495
4.借助vscode插件 px to rem & rpx & vw(cssrem) (需要自己配置一下设计稿大小)二.3、通过github上的库lib_flexible(推荐使用,里面考虑了0.5px、一些前进后退这些问题)单位换算也是手动,less这几种方法,插件 postcss-px-to-viewport-8-plugin。使用了,该写什么就写什么: 比如宽要100px就写100px,打包的时候会自动换算。首先rem是根据html的font-size来决定大小的。解决这个问题:通过js来实时改变。..
前端知识——css 之移动端适配方案vw、rem详解
weixin_42771853的博客
04-04 5656
px是pixel单词的缩写,翻译为像素。像素是影响显示的基本单位。像素单位常见的有三种像素名称:设备像素(也称之为物理像素);设备独立像素(也称之为逻辑像素);CSS像素设备像素,也叫物理像素。设备像素指的是显示器上的真实像素,每个像素的大小是屏幕固有的属性,屏幕出厂以后就不会改变了我们在购买显示器或者手机的时候,提到的设备分辨率就是设备像素的大小比如iPhone X的分辨率 1125x2436,指的就是设备像素设备独立像素,也叫逻辑像素。
CSS 中px、em、rem、%、vwvh单位之间的区别详解
11-21
px就是pixel(像素)的缩写,相对长度单位,相对于屏幕分辨率。 2、em 参考物是父元素的font-size,具有继承的特点。浏览器默认字体是16px,整个页面内1em不是一个固定的值。 字体大小同样都是1.5em,但是效果却截然...
Mobile_Adapter:移动端适配方案(rem 和 vwvh
05-11
Mobile_Adapter使用create-react-app的前端适配方案px 转 rempx 转 vw 或者 px 转 vh 使用 `create-react-app`脚手架创建项目或者使用本例中两个示例模板创建(`npm install`) 根据不同的适配方案,使用不同的文件...
rem.js 移动端 H5 解决各种机型适配问题的js
04-20
rem是 css3一种新的长度单位。它是相对于html标签的字体大小的单位(注意这里泛指是相对于html中的根元素标签也就是html)。 一般用于在移动端H5页面中解决各种机型适配问题的js,文件中详细说明。
前端中网页布局px ,rem,em,vw,vh的认识和区别有哪些?
ccssr的博客
06-22 4933
网页开发中,常会涉及到各种相对单位,px,rem,em,vw,vh你是否全面了解会使用,并且可以轻易区分它们,如果你特别头疼不知道它们是什么怎么用,欢迎点击阅读收藏哦
大屏适配方案二——vwvh
weixin_43422861的博客
12-08 812
按照设计稿的尺寸,将px按比例计算转为vwvh,转换公式如下。2、配置在vite.config.js配置less全局变量。1、新建文件:src/styles/index.less。3、在 vue 文件中使用。
H5移动端开发 之 rem适配
m0_58575070的博客
05-26 1135
的标签,同时会自动设置html的font-size为屏幕宽度除以10,也就是1rem等于html根节点的font-size。假如某个元素宽度是150px,那么在css里面定义这个元素的宽度就是 width: 2rem。1.安装插件 postcss-pxtorem, postcss-pxtorem是一款 PostCSS 插件,用于将 px 单位转化为 rem 单位。3.安装插件 lib-flexible, 该插件会自动在html的head中添加一个。4.在main.js中引入 lib-flexible。
2022 前端开发 vscode 常用插件及其他工具推荐
cos的博客
02-01 2472
总结了下自己的 2022 的常用前端插件以及工具推荐,虽然 vscode 自带的插件同步功能已经很齐全了,但是还是自己总结了一篇以备不时之需。
前端h5 页面 适配 demo
05-01
前端H5页面的适配是指将不同尺寸的设备,如手机、平板等,显示出同样的页面效果。以下是一个适配demo: 1. 使用Viewport设置页面缩放比例。 ```html <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> ``` 2. 使用CSS媒体查询调整样式。 ```css /* 当屏幕宽度小于等于375px时,应用以下样式 */ @media screen and (max-width: 375px) { body { font-size: 14px; } .nav { display: none; } .menu-toggle { display: block; } } /* 当屏幕宽度大于375px且小于等于768px时,应用以下样式 */ @media screen and (min-width: 376px) and (max-width: 768px) { body { font-size: 16px; } .nav { display: block; } .menu-toggle { display: none; } } ``` 3. 使用REM单位相对于根元素调整布局。 ```css html { font-size: 16px; } /* 将所有尺寸单位改为REM */ h1 { font-size: 2rem; /* 相当于32px */ margin-bottom: 1rem; /* 相当于16px */ } p { font-size: 1rem; /* 相当于16px */ line-height: 1.5rem; /* 相当于24px */ } ``` 4. 使用钩子函数根据设备类型设置字体大小。 ```js if (/Android (\d+\.\d+)/.test(navigator.userAgent)) { var version = parseFloat(RegExp.$1); if (version > 2.3) { var width = window.innerWidth; var fontSize = Math.min(16, width / 360 * 20) + 'px'; document.getElementsByTagName('html')[0].style.fontSize = fontSize; } } else { // 非Android设备,根据屏幕宽度设置字体大小 var width = window.innerWidth; var fontSize = Math.min(16, width / 360 * 20) + 'px'; document.getElementsByTagName('html')[0].style.fontSize = fontSize; } ``` 通过以上方法,可以做到良好的适配效果,使得H5页面可以自适应不同尺寸的终端设备,获得更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • echarts 图表无数据/空数据 展示“暂无数据” 21999
  • echarts柱状图y轴展示百分比,鼠标移入label展示数值 17603
  • echarts legend 图例形状、图标与文字对齐 9538
  • video 自定义视频播放控件 8748
  • echarts 堆叠柱状图 在顶部显示数据总数 6701

分类专栏

  • 资讯 7篇

最新评论

  • vue 区分多环境打包

    CSDN-Ada助手: Vue入门 技能树或许可以帮到你:https://edu.csdn.net/skill/vue?utm_source=AI_act_vue

  • video 自定义视频播放控件

    樱桃小丸犊子592: 可以要下源码嘛?

  • 基于el-tree实现懒加载穿梭条

    CSDN-Ada助手: 不知道 Vue入门 技能树是否可以帮到你:https://edu.csdn.net/skill/vue?utm_source=AI_act_vue

  • video 自定义视频播放控件

    gyuhao_o: 笑死,k8批?

  • video 自定义视频播放控件

    抬杠冠军选手: 搜个教程偶遇同担哈哈哈哈哈哈

大家在看

  • 【VMware虚拟机使用记录】—— 虚拟机开启失败的问题分析及解决方法 1044
  • Vulnhub-DC-8 1277
  • 环境对人的影响 270
  • 使用源代码编译方式升级内核【笔记】
  • Vulnhub-DC-9 698

最新文章

  • vue 响应拦截器,针对某个接口的返回值做特殊处理
  • vue 区分多环境打包
  • vue axios 请求过滤空值
2024年5篇
2023年19篇
2022年26篇
2021年2篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司凉山建站张掖百度爱采购公司常州设计网站哪家好滁州设计网站哪家好丽水企业网站建设多少钱保山网络营销报价安顺网站优化价格东莞seo优化推荐菏泽关键词排名多少钱盐田百度网站优化公司和县营销网站公司上饶设计公司网站推荐泰安企业网站改版推荐民治关键词按天计费公司昭通如何制作网站推荐中卫SEO按天计费山南企业网站制作哪家好铁岭关键词按天收费公司眉山设计公司网站多少钱荆门网站优化软件多少钱锦州网站优化按天扣费推荐温州英文网站建设哪家好安顺网站设计价格盐田百度竞价哪家好上饶网站开发价格吴忠网站设计亳州网站优化多少钱诸城模板推广公司福田英文网站建设多少钱上饶企业网站改版歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化