一、rem 原理与简介
字体单位:
    值根据 html 根元素大小而定,同样可以作为宽度,高度等单位
适配原理:
    将 px 替换为 rem,动态修改 HTML 根元素的 font-size 适配
兼容性:
    Ios 6 以上 和  Android 2.1 以上,基本覆盖所有流行的手机系统
// 移动 web 独有的 viewport 标签
// initial-scale 初始缩放
// user-scaleable 用户是否可缩放
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scaleable=no">
 
1rem = html 的 font-size
html 不设置 font-size 默认 1rem = 16px
 
二、如何根据不同屏幕设置 font-size 大小
1、媒体查询
<style type="text/css">   
   @media screen and (max-width: 320px) {
        html {
          font-size: 20px;
        }
      }  
    @media screen and (max-width: 360px) and (min-width: 321px) {
        html {
          font-size: 24px;
        }
      }
</style>
2、使用 js 方式
<script type="text/javascript">
// 获取视窗宽度
let htmlWidth =
document.documentElement.clientWidth || document.body.clientWidth
console.log(htmlWidth) // 获取视窗高度
let htmlDom = document.getElementsByTagName('html')[0] htmlDom.style.fontSize = htmlWidth / 10 + 'px'
</script>
 
三、rem 与 scss 相结合
1、rem 基准值的计算
    rem 基准值就是 html 的 font-size
2、rem 数值计算与构建
    换算出的 px 值的 rem 的值
    如 1rem = 16px
    170px = 170/16 rem
3、rem 与 scss 相结合

// 封装
@function px2rem($px) {
$rem: 37.5px // 以 iPhone 6 浏览器为基础 基准值就为 375 / 10 = 37.5
@return ($px / $rem) + rem // return 的值为 传进来的 px值 / rem基准值 + rem 单位
}
// 使用
.box {
width: px2rem(100px)
 height: px2rem(100px)
}

rem 原理与简介的更多相关文章

  1. rem原理

    rem布局实际上就是实现等比缩放 试想,如果我们的元素在不同的屏幕上可以按照相同的比例来进行缩放就好了. rem的计算原理: 试想把屏幕平均分成10份,那么每一份就是1/10,我们选择每一份的大小是1 ...

  2. Kickstart无人值守原理及简介

    原文转自:https://www.cnblogs.com/itzgr/p/10029461.html作者:木二 目录 一 简介及原理 二 搭建无人值守步骤 三 PXE介绍 四 Kickstart简介 ...

  3. 淘宝、网易移动端 px 转换 rem 原理,Vue-cli 实现 px 转换 rem

       在过去的一段时间里面一直在使用Vue配合 lib-flexible和px2rem-loader配合做移动端的网页适配.秉着求知的思想,今天决定对他的原理进行分析.目前网上比较主流使用的就是淘宝方 ...

  4. ELK原理与简介

    为什么用到ELK: 一般我们需要进行日志分析场景:直接在日志文件中 grep.awk 就可以获得自己想要的信息.但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档.文本搜索太慢怎么办 ...

  5. MapReduce工作原理流程简介

    在MapReduce整个过程可以概括为以下过程: 输入 --> map --> shuffle --> reduce -->输出 输入文件会被切分成多个块,每一块都有一个map ...

  6. Rem实现移动端适配

    移动端适配 web页面跑在手机端(h5页面) 跨平台 基于webview() 基于webkit 常见适配方法 pc端采用display:inline-block,让div盒子横着排 移动web:采用定 ...

  7. Xposed 框架 hook 简介 原理 案例 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. rpc简介、原理、实例

    简介 RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过 ...

  9. 移动web开发适配rem

    移动的meta标签 <meta  name="viewport" content="width=device-width, initial-scale=1,user ...

随机推荐

  1. 超简单(两步)-微信怎么实现打开外部浏览器,下载app,打开网页URL

    现在微信渠道可以说是拉新最快的渠道,因为微信具备强裂变性.但是目前微信对第三方下载链接的拦截是越来越严格了,那么想要在微信内肆无忌惮地推广链接就需要用到微信跳转浏览器的接口,那如何获取该接口呢?   ...

  2. dwSun带你选Python的编辑器/IDE

    dwSun带你选Python的编辑器/IDE Python 是一门简单易学,同时又十分强大的编程语言.特别是随着人工智能的热潮,Python作为AI开发的首选语言,已经是技术人员的必备技能. 在学习和 ...

  3. Oracle使用学习笔记(一)

    一.实体关系模型的三个关键因素 实体:具有相同特征和属性的显示世界事务的抽象,对应面向对象编程中的类,动物就是一个实体 属性:实体具有的特征,如类的属性,动物的名字,体长等 关系:一对一,一对多,多对 ...

  4. 同机器与不同机器redis集群

    此文为另外一位大神原创由于没有找到分享功能  粘贴复制到此  原地址为https://blog.csdn.net/u012042021/article/details/72818759 一.同机器下的 ...

  5. form的submit()方法不能触发onsubmit事件的解决方法,兼容各版本浏览器。

    在处理表单提交的时候遇到一个问题,通常用<input type="submit" value="提交" />按钮来提交form,再监听form的on ...

  6. 吴裕雄 python 机器学习——ElasticNet回归

    import numpy as np import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot ...

  7. 怎样用Python的Scikit-Learn库实现线性回归?

    来源商业新知号网,原标题:用Python的Scikit-Learn库实现线性回归 回归和分类是两种 监督 机器 学习算法, 前者预测连续值输出,而后者预测离散输出. 例如,用美元预测房屋的价格是回归问 ...

  8. 关于SQL 导出脚本失败 及SQL 的重装

    说点题外话 最近跳到一家新公司 薪资比较客观 但是技术可能不太尽如人意 而且对.Net方向的开发好像不是很友好  自己也不知道该怎么办 一个人大老远跑这边来 附近也没有什么.net的公司和职位 房子租 ...

  9. vue项目结构搭建

    1安装node.js,已集成npm 2.临时使用淘宝镜像 npm --registry https://registry.npm.taobao.org install express 3.instal ...

  10. 大数据学习笔记4 - Hadoop的优化与发展(Hadoop 2.0)

    前面介绍了Hadoop核心组件HDFS和MapReduce,Hadoop发展之初在架构设计和应用性能方面仍然存在不足,Hadoop的优化与发展一方面体现在两个核心组件的架构设计改进,一方面体现在Had ...