想到写这个博客的时候,网上很多已经在吵着都2019了,还在用rem,都在用vw,emmm

1.rem的原理

众所周知rem的原理就是,值根据html根元素的大小而定,改变html的font-size大小便可改变元素的大小。

2.原理大家都一样,主要在动态改变html的font-size大小时,每个人的习惯不太一样。

网上有很多类似的博客,方法也很多

1.使用媒体查询,类似这种

html{font-size:10px}
@media screen and (min-width:321px) and (max-width:375px){html{font-size:11px}}
@media screen and (min-width:376px) and (max-width:414px){html{font-size:12px}}
@media screen and (min-width:415px) and (max-width:639px){html{font-size:15px}}
@media screen and (min-width:640px) and (max-width:719px){html{font-size:20px}}
@media screen and (min-width:720px) and (max-width:749px){html{font-size:22.5px}}
@media screen and (min-width:750px) and (max-width:799px){html{font-size:23.5px}}
@media screen and (min-width:800px){html{font-size:25px}}

2.借助sass,less等,类似这种

@baseFontSize: 75;//基于视觉稿横屏尺寸/100得出的基准font-size
.px2rem(@px){@return @px / @baseFontSize * 1rem;
}
//使用示例:
.container {height: px2rem(240);
}
//less翻译结果:
.container {height: 3.2rem;
}  

同时也要借助js动态设置html的font-size

let deviceWidth = document.documentElement.clientWidth;
document.documentElement.style.fontSize = deviceWidth / 7.5 + 'px';window.onresize = function(){let deviceWidth = document.documentElement.clientWidth;document.documentElement.style.fontSize = deviceWidth / 7.5 + 'px';
};

3.用工具,webpack,postcss,postcss-pxtorem

postcss-pxtorem是PostCSS的插件,用于将像素单元生成rem单位。

但配置好后,依然需要js来动态改变html的font-size

4.借助插件https://github.com/imochen/hotcss

不管哪种方法,所基于的原理都是一样的,最后说下自己最常用的方法

css的calc和js

html{font-size: calc(100vw / 7.5);
}

let deviceWidth = document.documentElement.clientWidth;
document.documentElement.style.fontSize = deviceWidth / 7.5 + 'px';window.onresize = function(){let deviceWidth = document.documentElement.clientWidth;document.documentElement.style.fontSize = deviceWidth / 7.5 + 'px';
};  

此时设计稿大小为750px,用/100的方式可以很容易进行rem的换算,几乎不需要借助其他工具,直接设计稿大小除以100即可,并不觉得麻烦,所以一直在用  

  

  

转载于:https://www.cnblogs.com/Anne3/p/11189015.html

使用rem进行页面适配相关推荐

  1. 前端页面适配的rem换算

    为什么要使用rem 之前有些适配做法,是通过js动态计算viewport的缩放值(initial-scale). 例如以屏幕320像素为基准,设置1,那屏幕375像素就是375/320=1.18以此类 ...

  2. 关于手机端适配的问题(rem,页面缩放)

    关于手机端适配的问题(rem,页面缩放) 96 进击的小前端 关注 2018.02.02 13:57 字数 320 阅读 19评论 0喜欢 0 相信很多和会和我碰到一样的情况,就是你用rem去写移动端 ...

  3. 前端怎么把px单位换成rem单位解决项目页面适配问题

    先看没有适配前的效果,下面是没有适配前,使用的是px单位,代码和效果如下: <!DOCTYPE html> <html><head><meta charset ...

  4. python四大软件-传智播客解析Python之移动端页面适配四大方式

    前端在制作移动端页面时,会碰到适配各种手机屏幕的问题,而且还包括平板电脑,这么多种分辨率的屏幕,如何做到适配呢?传智播客为此总结了四种方式,具体如下: 传智播客解析Python之移动端页面适配四大方式 ...

  5. 教你如何用 lib-flexible 实现移动端H5页面适配

    前话 好久没写教程了(可能会误导新手的菜鸟教程( ̄▽ ̄)"). 这是我的github,欢迎前端大大们和我一起学习交流 https://github.com/pwcong 最近入职公司做前端实 ...

  6. 移动端 H5 分屏页面适配问题--设计稿比例与设备宽高比例不同

    移动端 H5 分屏页面适配问题 单位问题 肯定用rem, 为了方便计算,一般取 1rem=100px(设计稿px), 需要根据设计稿的宽度设置合适的fontSize, 具体可以看这篇文章 :移动端根据 ...

  7. html5页面适配方法,H5案例分享:HTML5移动页面适配方法

    HTML5移动页面适配方法 之前做过PC页面时考虑最多的是兼容,这是因为浏览器之间的差异引起的.而移动端是基本没有"兼容"的问题了,全是CSS3,是不是很开心,但是开心早了,因为适 ...

  8. js整体缩小网页_js实现整体缩放页面适配移动端

    大家在适配页面的Web端和移动端时候,如果不需要那么麻烦,就可以使用js进行整体缩放,只需要引入一个js,改动htmll头部代码即可 切记: 1.该 JS 应在 head 中尽可能早的引入,减少重绘. ...

  9. 关于H5页面适配的问题

    1.问题描述 适配的目标:在不同尺寸的手机设备上,页面"相对性的达到合理的展示(自适应)"或者"保持统一效果的等比缩放(看起来差不多,但不是完全等比例,对于字体我们并不喜 ...

最新文章

  1. Angular module加载的原理研究
  2. i5老是显示无服务器,为什么懂电脑的人选择买i5处理器,而不是i7,背后的真实原因?...
  3. 在网页中嵌入任意字体的解决方案 (insert any font)
  4. Flutter进阶—质感设计之持久底部面板
  5. android go 刷机教程,安卓用的久了,如何刷机?安卓手机线刷教程
  6. 这是我见过Java版的最好的OA系统,拿来即用,非常方便(附项目地址)
  7. Filezilla:建立远程与阿里云交互的FTP
  8. chrome 文本框 获取焦点时 边框色
  9. 水经注万能地图下载器的自定义瓦片导出功能
  10. comsol 学习笔记【基础知识,磁场与结构场耦合为主】
  11. 随机向量函数链神经网络(RVFLNN)简介——附测试代码
  12. CORS请求的简单请求和非简单请求
  13. 【DB笔试面试608】在Oracle中,如何使用STA来生成SQL Profile?
  14. 直击|咪蒙公众号自主注销 此前微博已永久关停
  15. 用指向指针的指针方法对n个整数排序输出
  16. JS基础-数组的常用方法(ES3)
  17. zookeeper节点类型,整合代码实现服务器动态监听
  18. 有了这 15 款编程游戏,谁都可以学编程!
  19. 推荐7个非常有意思的软件,让你的手机变得更顺手!
  20. 稳控科技水库水坝监测系统解决方案

热门文章

  1. 物联网卡就是流量卡 这说法正确吗
  2. 如何选择一个合适的大数据可视化工具
  3. 学大数据要学哪些算法_大数据学习之不得不知的八大算法
  4. es6遍历树结构并判断_实现树形结构数据 es6
  5. 刮刮乐html5效果擦除,HTML5实现刮刮卡的效果
  6. python数据库操作批量sql执行_Python批量修改数据库执行Sql文件
  7. list集合排序_Java面试第七部分 Java的集合
  8. android 页面icon拉伸_页面转场: 忽略它可能会使你犯错
  9. jsf mysql_在JSF数据表中显示来自MySQL数据库的图像[关闭]
  10. 深入理解Java的分级引用模型