移动适配---em、rem 、 vw / vh的原理以及小程序的 rpx

13 篇文章 0 订阅
订阅专栏

em

是相对于父元素标签的字号,和百分比%类似,%也是相对于父级的,只不过是%相对于父级宽度的,而em相对于父级字号的

✨移动适配

  • 网页效果
    • 屏幕宽度不同,网页元素尺寸不同(等比缩放
  • 适配方案
    • rem
      • 相对单位
      • rem单位是相对于HTML标签的字号(要存在)相对视口宽度的 1/10
      • 1rem = 1HTML字号大小
    • vw / vh
      • 相对单位
      • 相对1/100视口宽高度

rem移动适配

  • rem移动适配 - 媒体查询

    • 媒体查询能够检测视口的宽度,然后编写差异化的 CSS 样式

    • 当某个条件成立, 执行对应的CSS样式

    • 写法

       @media (媒体特性) {
      
        ​            选择器{CSS属性
      
        ​            }}
      
  • 使用rem单位设置网页元素的尺寸

    • 目前rem布局方案中,将网页等分成10份, HTML标签的字号为视口宽度的 1/10

    • /* 1. 不同的视口, HTML标签字号不同, 字号是视口宽度的1/10 */
      @media (width:320px) {
          html {
              font-size: 32px;
          }
      }
      
  • rem适配原理

    • 目标:实现在不同宽度的设备中,网页元素尺寸等比缩放效果

    • rem单位尺寸

      1. 根据视口宽度,设置不同的HTML标签字号

      2. 书写代码,尺寸是rem单位

        1. 确定设计稿对应的设备的HTML标签字号

          • 查看设计稿宽度 → 确定参考设备宽度(视口宽度) → 确定基准根字号(1/10视口宽度)
        2. ⭐️ rem单位的尺寸(假设设计稿宽度为375px,则字体为37.5px)

          • rem = px / 37.5

          • rem单位的尺寸 = px单位数值 / 基准根字号

            .box {
                /*  68 * 29  */
                /* 设计稿375, HTML 37.5   68/37.5 */
                
                width: calc(10rem * 68px  / 375px);
                height: calc(10rem * 29px / 375px);
                background-color: pink;
            }
          
  • ⭐️ flexible js配合rem实现在不同宽度的设备中,网页元素尺寸等比缩放效果 下载地址

    • flexible.js是手淘开发出的一个用来适配移动端的js框架。
    • 核心原理就是根据不同的视口宽度给网页中html根节点设置不同的font-size。
    • 即把根标签的字体大小改成了 当前屏幕的十分之一大小

vw / vh移动适配

简单来说,即 100vw/vh 即为视口宽高度

  • 相对单位
  • 相对视口的尺寸计算结果
  • vw:viewport width
    • 1vw = 1/100视口宽度
  • vh:viewport height
    • 1vh = 1/100视口高度
  • vw单位尺寸
    1. 确定设计稿对应的vw尺寸 (1/100视口宽度)
      • 查看设计稿宽度 → 确定参考设备宽度 (视口宽度) → 确定vw尺寸 (1/100 视口宽度)
    2. vw单位的尺寸 = px单位数值 / ( 1/100 视口宽度 )
  • vw 和 vh 不要混用

代码演示 以及calc 的语法
❗❗注意 calc的语法比较严格 尤其注意空格

// 设计稿为 375px,存在一个大小为100px的div,字体大小也为100px。
// 375px = 100 vw 那么 1 px = 100vw / 375
// 因此 100px = 100vw * 100 / 375

 div{
   width: calc(100vw * 100 / 375);
   height: calc(100vw * 100 / 375);
   font-size: calc(100vw * 100 / 375);
 }

❗一般做满高,用min-height=100vh,注意是min-height而不是height(后面超过视口高度额那部分会没有样式)

rem 和 vw / vh 的区别

rem
  • 需要不断修改 HTML 文字大小
  • 需要媒体查询 media
  • 需要 flexible.js
✅vw / vh(将来趋势)
  • 省去各种判断和修改
  • 代表:b站…

rpx

用来解决屏适配的尺寸单位

❌小程序不能用 rem,因为 rem 是相对于 html 字号进行计算的

实现适配的原理

在宽度上等分为 750 份(即:当前屏幕的总宽度为 750rpx)。即 375rpx 为一半的屏幕宽度

  • 在较小的设备上,1rpx 所代表的宽度较小
  • 在较大的设备上,1rpx 所代表的宽度较大
rpxpx 之间的单位换算

假设设计稿宽度为 375px:

  • 750rpx = 375px = 750 物理像素
  • 1rpx = 0.5px = 1物理像素

补充—巧用vscode 插件:px to rem,px to vw,px to rpx

请添加图片描述

px to rem 里面的数值填写 根字体的大小(设计稿/10)

请添加图片描述

请添加图片描述
请添加图片描述

px to rpx 数值的大小为:设计稿的大小

remvw,vh的介绍
m0_64969829的博客
12-31 1265
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 rem的介绍前言一、rem是什么?二、手写rem布局三、rem适配方案 前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、rem是什么? rem是相对单位,相当于html页面中font-size的一个字体大小 它可以自适应屏幕的宽高 二、手写rem布局 代码如下(示例): rem(); //页面刷新后依然存在 window.onresize=function(){ //每次点击都会重新调用 rem(); } func
关于流式布局&remem移动适配
weixin_48877743的博客
12-27 140
关于移动端的适配:流式布局&rem&em自适应
quicker.em 适配sourceinsight4
11-19
quicker.em 网上很多只支持sourceinsight3版本,这里配置好了 适配sourceinsight4,功能很强大,有问题可以私信联系
说好的响应式呢?移动适配方案探究:Rem vs Em vs vw/vh
最新发布
zhaodash97的博客
04-05 697
Em单位是相对于其父元素的字体大小来定义的。如果没有设置父元素的字体大小,默认是16px。1em等于父元素的字体大小,2em就是父元素字体大小的两倍。听起来似乎很简单,但嵌套使用时会使事情变得复杂,因为em是相对于当前元素的父元素来计算的,层层嵌套下去,计算起来就像是在玩俄罗斯套娃。
两种移动适配方案——rem、vmvh
m0_67391401的博客
03-17 898
移动适配 1. rem 媒体查询 flexiable.js 适配 2. vm/vh 移动适配指的是在屏幕宽度不同时,网页元素尺寸不同(等比缩放) 1. rem rem单位是相对单位,是相对于HTML标签的字号计算结果 1rem = 1HTML字号大小 例如在HTML字号大小为20px时,box盒子的宽度为5_20=100px,高度为3_20=60px /* 1rem = 1html标签字号大小 */ html { font-size: 20px; } .box {
面试官:说一下 px、em、remvw/vhem和rem的区别?
upgrade_bro的博客
09-02 895
面试官:说一下 px、em、remvw/vhem和rem的区别?rem是一个相对长度单位,相对于根元素,常用于响应式布局;em也是一个相对长度单位,相对于父元素
微信小程序开发-rem转换rpx小工具
03-29
然后在对数组中的元素字符串进行再次根据 “:” 进行拆分,这样就把原rem样式的数字给提取出来了,然后就根据规则转换成rpx的数值,重新组合就好了。 css格式化工具:https://tool.lu/css/   源码:   <!...
03-px-em-rem-vw-vh-区别.md
03-31
大厂前端面试题目|# 前端基础知识 ...本章将通过多个面试题,讲解前端常考的基础知识面试题,同时复习一些重要的知识点。 ## 为何要考察 扎实的前端基础知识,是作为前端工程师的根本。基础知识能保证最基本的使用,...
CSS 中px、em、rem、%、vwvh单位之间的区别详解
11-21
字体大小同样都是1.5em,但是效果却截然不同,按照W3C提供的公式,我们可以计算下: class为id1的div字体大小继承自父元素body:16px*1.5em = 24px class为id2的div字体大小继承自父元素id1:24px*1.5em = 36px ...
babel-plugin-styled-components-px2rem:Babel插件,用于将px转换为样式组件的rem单位
01-30
babel-plugin-styled-components-px2rem 插件,用于将px转换为rem单位使用处理模板字符串中的所有CSS文本。 启用选项时,添加运行时px2rem函数px2rem来处理嵌入在模板字符串中的表达式。 具有相似功能的TypeScript...
微信小程序中单位rpx和rem的使用
11-29
这篇文章主要给大家讲解了rpx和rem应用于微信小程序,如果你还没有入门,建议先从下面看起  微信小程序官方文档  >web app变革之rem  >rpx单位官方文档  >rpx单位基础介绍 如果看完上面几篇文章,我们开始...
rem介绍、vwvh实现等比例缩放
YY的博客
09-30 1504
rem解决移动端等比例缩放
5、cssvhvw的属性
iceking66的博客
10-20 3603
vhvw 响应式网页设计技术很大程度上依赖于比例规则。然而,CSS比例不总是每个问题的最佳解决方案。CSS宽度是相对于最近的包含父元素。如果你想使用显示窗口的宽度或高度而不是父元素的宽度将会怎么样?这正是vhvw单位所提供的。 vh等于viewport高度的1/100.例如,如果浏览器的高是900px,1vh求得的值为9px。同理,如果显示窗口宽度为750px,1vw求得的值为7.
vhvw、rem究极适配方案
qq_40146880的博客
08-01 2449
实现不同倍率设计图同时用px开发,使用vw vh 与 rem 共存方式解决问题。 在开发中经常会用到ui框架,本例使用vant ui框架。 一般我们在移动端项目开发中都会使用px然后通过postcss 转换成 remvw vh 进行适配 ,但是遇到ui框架与设计图像素倍率不同的时候,都会选择修改设计图像素倍率进行兼容ui框架。 或者也有人使用postcss的 selectorBlackList:...
CSS尺寸单位px、em、remvwvh以及%的区别
火星基地
10-15 2360
1. px px是像素单位。它是代表显示器上每一个显示的像素点,根据用户屏幕显示器的分辨率决定。 2. em em为相对单位,相对于当前元素内文本的字体尺寸。如果当前元素没有指定字体尺寸,那么以浏览器默认的字体尺寸为准。 例如,当前元素设置了字体尺寸为24px,那么2em就代表48px。 3. rem rem为相对单位,相对于<HTML>元素文本的字体尺寸。如果<HTML>元素没有指定字体尺寸,那么以浏览器默认的字体尺寸为准。 例如,<HTML>元素设置了字体尺寸为24p
rpx是微信小程序独有的,解决屏幕自适应的尺寸单位
m0_49471668的博客
10-13 766
rpx: 是微信小程序独有的,解决屏幕自适应的尺寸单位可以根据屏幕宽度进行自适应,不论屏幕大小,规定屏幕宽为 750rpx,通过rpx设置元素和字体大小,小程序在的屏幕上可以。
前端h5界面适配 vwvh、rem单位的运用
细节怪的博客
11-29 1079
h5移动适配
屏幕大小适配,remem的区别适用
高振的博客
07-06 1814
em:一般都是以的“font-size”为基准。相对于父元素的属性而计算的.进行任何元素设置,都有可能需要知道他父元素的大小。     rem:相对于根元素设置字体大小,只需要在根元素确定一个参考值。     @media screen and (max-width: 320px) {         html,body {             font-size: 12px;
《微信小程序七日谈》- 第二天:你可能要抛弃原来的响应式开发思维
weixin_33747129的博客
11-26 263
《微信小程序七日谈》系列文章: 第一天:人生若只如初见; 第二天:你可能要抛弃原来的响应式开发思维; 第三天:玩转Page组件的生命周期; 第四天:页面路径最多五层?导航可以这么玩; 第五天:你可能要在登录功能上花费大力气; 第六天:小程序devtool隐藏的秘密; 第七天:不要捡了芝麻丢了西瓜 本系列的文章并非初学教程,而是笔者在具体开发过程中遇到的问题以及部分解决方案。 上篇文章第一天...
vw/vh/px/em/rem/vmin/vmax区别
07-29
vw: 视口宽度的百分比单位,1vw等于视口宽度的1%。例如,如果视口宽度为1000px,那么1vw就等于10px。 vh: 视口高度的百分比单位,1vh等于视口高度的1%。与vw类似,但是基于视口高度计算。 px: 像素单位,是一个...

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

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

热门文章

  • uni-app项目使用uview-ui报错:Component is not found in path node-modules/uview-ui/components/xx/xx 10903
  • 微信小程序 ---在Vscode上编辑,微信开发者工具上预览,快速上手 9011
  • Echart按需引入时报错---[ECharts] Component legend(‘XX‘) is used but not imported. 5803
  • Vue2、Vue3知识总结---完整版✨ 5602
  • TypeScript基础知识梳理 4524

分类专栏

  • 知识点总结 13篇
  • Vue 25篇
  • TypeScript 5篇
  • 插件使用 9篇
  • React 2篇
  • 前端性能优化 5篇
  • 小程序 6篇
  • uni-app 2篇
  • 前端开发错误总结 9篇
  • JavaScript 2篇
  • 数组方法 1篇
  • 打包运行 1篇
  • 前端兼容性 1篇
  • 函数封装 1篇
  • 项目打包上线 2篇
  • 计算机网路 1篇

最新评论

  • uni-app项目使用uview-ui报错:Component is not found in path node-modules/uview-ui/components/xx/xx

    可乐焖大虾: 凸(艹皿艹 ),真的是这个原因!!!!排查了好久好久!

  • uni-app项目使用uview-ui报错:Component is not found in path node-modules/uview-ui/components/xx/xx

    我的天天 天天天天天天天呐: 重启微信开发者工具 可以

  • Vue项目按需请求,组件数据懒加载—@vueuse/core中 useIntersectionObserver的使用

    XuXinCHN: 你好 我想请问一下useIntersectionObserver的第二个参数是一个回调函数,为什么可以在这个回调函数里调用 stop()呢?赋值语句从左到右进行,调用stop()的时候还没有解构出 stop 这个方法啊!

  • uni-app项目使用uview-ui报错:Component is not found in path node-modules/uview-ui/components/xx/xx

    今天码了没: 重启之后又渲染层错误了表情包

  • 【小程序错误】chooseAddressfail the api need to be declared in …e requiredPrivateInfos field in app.json

    求索nnnn: 你是我滴超人

大家在看

  • 鸿蒙——Builder 和 BuildParam的区别?Builder和Component的区别? 
  • Win11 操作(二)隐藏桌面图标
  • Flutter动画进阶:解锁能量函数的艺术,打造流畅视觉体验 4
  • Docker Images Pusher :使用Github Action加速转存到阿里云私有仓库达到加速的目的
  • 蓝易云 - 什么是跨境独立站,如何运营独立站? 227

最新文章

  • 前端技巧总结---持续更新
  • vscode中React常用快捷键汇集
  • Vue项目性能优化之---自定义指令实现图片懒加载、首屏渲染优化(组件数据懒加载)、vue-lazyload的使用
2023年1篇
2022年50篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wendyymei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

深圳SEO优化公司深圳网站优化按天扣费公司贺州关键词按天收费公司伊犁外贸网站建设报价雅安企业网站制作多少钱鹤岗企业网站设计哪家好深圳网站优化按天计费价格潮州优秀网站设计多少钱永新百姓网标王推广推荐民治百搜标王阿坝百度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 网站制作 网站优化