您现在的位置是:网站首页> 编程资料编程资料
详解如何使用rem或viewport进行移动端适配吃透移动端 1px的具体用法postcss-pxtorem移动端适配的实现移动端适配 使px自动转换remHtml5移动端适配IphoneX等机型的方法浅谈移动端适配大法html5实现移动端适配完美写法
                     2021-08-30
                1450人已围观
                
                2021-08-30
                1450人已围观
            
简介 这篇文章主要介绍了详解如何使用rem或viewport进行移动端适配,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
在开发移动端界面时,移动端适配一直是一个比较头疼的事情,常见的移动端适配有viewport适配,rem适配,百分比适配等等,在这里我们只介绍viewport适配和rem适配。看完这篇文章相信你应该会实战操作移动端对于不同手机大小的适配问题了。
一:rem适配
rem是指相对于根元素的字体大小(font-size)的单位,根标签的font-size=1rem。其可以称作为相对单位,也就是说我们可以通过视口的大小动态更新根元素字体大小(font-size)的值,从而动态更新rem所相对的值,使用使得移动端网页能够适配各种型号的手机。话不多说先上代码。
js代码(用于动态修改其根标签font-size的值):
html与css代码:
test
我们来看一下通过改变手机的型号(视口的大小)对于页面的元素有什么变化。


从上述两张图我们可以看出,当我们改变手机的型号后(改变完成后记得要刷新哦),视口的大小也发生了改变,对于test元素的宽高也发生了改变,此时我们就能够进行进行移动端适配了。
rem适配原理
改变了一个元素在不同设备上占据的css像素的个数
rem适配的优缺点
- 优点:没有破坏完美视口
- 缺点:px值转换rem太过于复杂(下面我们使用less来解决这个问题)
less+rem解决转换复杂问题
使用less中进行运算,减少了我们手动进行计算所需要的rem值,也可以使用stylus,scss等css预处理器,来进行对于rem的运算,该例子需要结合上述js代码来进行搭配。
此时我们的less代码为:
 /* 此时我们的750为设计图大小,具体值应该跟随设计图大小来进行设置 */ /* 对于750/16rem的逻辑为:因为16rem为占据页面的总宽,所以750(设计图的宽度)/16rem得出1rem与设计图的等比 */ /* 这个适合我们就可以根据该元素在设计图的宽度来设计大小啦,例如test的宽高为200px,那么我们就可以这样来写: */ @rem:750/16rem; #test{ width: 200/@rem; height: 200/@rem; background: pink; text-align: center; line-height: 200/@rem; } 注意!需要结合上述的js代码来一起使用哦!
二:viewport适配
对于viewport适配,实际是更改视口的大小,也就是说可以将其当作近大远小的原理,当减小视口宽度之后当前元素的可视大小也会减小,当增加视口宽度之后当前的元素可视大小会增大。从而进行移动端的适配。话不多说继续上代码:
js代码:
 (function(){ /* targetW的值为设计图的宽度大小,此时设置的宽度大小为640 */ var targetW = 640; /* 获取视口缩放的比例 */ var scale = document.documentElement.clientWidth/targetW; /* 获取到meta标签 */ var meta = document.querySelector("meta[name='viewport']"); /* 向其添加缩放的比例 */ meta.content="initial-scale="+scale+",minimum-scale="+scale+",maximum-scale="+scale+",user-scalable=no"; })() html与css代码:
test


可以看出此时元素的大小并没有发生改变(因为我们改变的是视口的大小并不是元素的大小)但其仍会占据视口的一半(根据缩放比来去改变元素在当前界面所占据的大小)。这就是viewport进行移动端适配的使用。
viewport适配的原理
viewport适配方案中,每一个元素在不同设备上占据的css像素的个数是一样的。但是css像素和物理像素的比例是不一样的,等比的*/
- viewport适配的优缺点
- 在我们设计图上所量取的大小即为我们可以设置的像素大小,即所量即所设
- 缺点破坏完美视口
# 三:结尾
以上为rem适配与viewport适配使用进行的总结,但还是推荐大家使用less+rem进行移动端的适配,更多相关rem或viewport移动端适配内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- AmazeUI 导航条的实现示例AmazeUI底部导航栏与分享按钮的示例代码AmazeUI 手机版页面的顶部导航条Header与侧边导航栏offCanvas的示例代
- AmazeUI导航的示例代码AmazeUi Tree(树形结构) 应用小结AmazeUI 折叠面板的实现代码AmazeUI框架搭建的方法步骤(图文)AmazeUI 面板的实现示例AmazeUI 列表的实现示例AmazeUI中各种的导航式菜单与解决方法
- AmazeUI 输入框组的示例代码AmazeUI 面板的实现示例AmazeUI 列表的实现示例AmazeUI 导航条的实现示例AmazeUI导航的示例代码AmazeUI 图标的示例代码AmazeUI 评论列表的实现示例AmazeUI 网格的实现示例AmazeUI框架搭建的方法步骤(图文)
- 网站性能延迟加载图像的五种技巧(小结)html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- AmazeUI 图标的示例代码AmazeUI 面板的实现示例AmazeUI 列表的实现示例AmazeUI 导航条的实现示例AmazeUI导航的示例代码AmazeUI 网格的实现示例AmazeUi Tree(树形结构) 应用小结
- AmazeUI 评论列表的实现示例AmazeUI 面板的实现示例AmazeUI 列表的实现示例AmazeUI 导航条的实现示例AmazeUI导航的示例代码AmazeUI 输入框组的示例代码AmazeUI 图标的示例代码AmazeUI 网格的实现示例AmazeUI框架搭建的方法步骤(图文)
- AmazeUI 网格的实现示例AmazeUI 面板的实现示例AmazeUI 列表的实现示例AmazeUI 导航条的实现示例AmazeUI导航的示例代码AmazeUI 图标的示例代码AmazeUi Tree(树形结构) 应用小结
- 清除canvas画布内容(点擦除+线擦除)canvas画布实现手写签名效果的示例代码canvas学习笔记之2d画布基础的实现canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法h5使用canvas画布实现手势解锁html5清空画布方法(三种)HTML5 画布canvas使用方法用html5的canvas画布绘制贝塞尔曲线完整代码html5的画布canvas——画出简单的矩形、三角形实例代码html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
- canvas小画板之平滑曲线的实现Canvas实现贝赛尔曲线轨迹动画的示例代码canvas进阶之如何画出平滑的曲线canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动基于canvas使用贝塞尔曲线平滑拟合折线段的方法canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)canvas仿写贝塞尔曲线的示例代码HTML5 canvas基本绘图之绘制曲线使用HTML5的Canvas绘制曲线的简单方法HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线使用canvas绘制贝塞尔曲线
- html5的pushstate以及监听浏览器返回事件的实现HTML5中外部浏览器唤起微信分享功能的代码HTML5中外部浏览器唤起微信分享html5使用html2canvas实现浏览器截图的示例处理HTML5新标签的浏览器兼容版问题如何查看浏览器对html5的支持情况
 
                                
                                                         
                                
                                                         
                                
                                                         
 
    