首先说明 本篇 内容 适合初级使用 rem 开发移动端 自适应 公式计算 推导过程, 高手绕路。

目标尺寸 = rem  *  根字体大小

Px   =  rem * (html根字体px)

根字体大小 = 比例值 = 屏幕尺寸宽度/PSD稿尺寸宽度

目标尺寸 = rem  *  屏幕尺寸宽度/PSD稿尺寸宽度

Html跟字体浏览器支持 最小 12像素, 避免过小加权 系数 n

实际尺寸                                 实际尺寸              屏幕尺寸宽度            实际尺寸                屏幕尺寸宽度 * n            实际尺寸                 屏幕尺寸宽度

目标尺寸 = —————   *   根字体大小  =  ———————  * —————————— =  —————— * ———————————— =  ———————  * ———————————————————————————

1                                             1               PSD稿尺寸宽度            1 * n                     psd稿 尺寸宽度                a                    b (尽可能让b值小 这样字体不会小于12像素)

psd稿 尺寸宽度 = a * b;

实际尺寸            屏幕尺寸宽度

目标尺寸 = —————— * ————————————

1                     PSD稿尺寸宽度(640)

以PSD 640像素为例

实际尺寸                 屏幕尺寸宽度

目标尺寸 = ———————     *    -------————————

100                  6.4 (640=100*6.4)

回归开始

目标尺寸 = rem  *  根字体大小

结合前端预编译工具 scss  生成rem:

@function rem( $px) {

@return $px*(1/100)*1rem;

}

JS 根据屏幕宽度计算 字体大小:

//- 设置根元素fontSize~

(function (doc, win) {

var _root = doc.documentElement,

resizeEvent = 'orientationchange' in window ? 'orientationchange' : 'resize';

function resizeFont () {

var clientWidth = _root.clientWidth;

_root.style.fontSize = (clientWidth/6.4) + 'px';

//console.log('w:' + clientWidth );

}

win.addEventListener(resizeEvent, resizeFont, false);

doc.addEventListener('DOMContentLoaded', resizeFont, false);

})(document, window);

--------------------延伸-----------------------------------------------------------------------------------

实际尺寸

目标尺寸百分比 =  ————————————————

上下文元素元素尺寸

反推

实际尺寸

Rem  = ——————---------------

根字体大小

---------------------------------------------------------------------------------------------------------

完整代码 链接:

rem 结合 scss 移动端自适应 初级入门demo的更多相关文章

  1. 基于vue-cli配置手淘的lib-flexible + rem,实现移动端自适应

    没接触过flexible的建议先看看大漠的这篇文章这样你才会知道长度为什么用rem,而字体要用px 安装flexible npm install lib-flexible --save 引入flexi ...

  2. 【转载】rem自适应布局-移动端自适应必备

    原文链接:rem自适应布局-移动端自适应必备 版权所有,转载时请注明出处,违者必究. 由于移动端特殊性,本文讲的是如何使用rem实现自适应,或叫rem响应式布局,通过使用一个脚本就可以rem自适应,不 ...

  3. mui初级入门教程(六)— 模板页面实现原理及多端适配指南

    文章来源:小青年原创发布时间:2016-07-26关键词:mui,webview,template,os,多端适配转载需标注本文原始地址: http://zhaomenghuan.github.io. ...

  4. rem实现移动端自适应页面

    一.把px转换成rem方案 1.cssrem插件 2.css预处理器 3.rem-unit插件 4.px2rem插件 rem就是相对于根元素的font-size来做计算,设置好根结点字体大小,子节点用 ...

  5. 响应式Web初级入门

    本文来自我的前端博客,原文地址:http://www.hacke2.cn/about-responsive/ 跨终端时代的到来 当你乘坐各种交通工具(公交.地铁.轻轨.火车)时你会发现,人们都个个低下 ...

  6. webstorm下的sass自动编译和移动端自适应实践

    1.安装Ruby 2.安装sass 3.webstorm配置file watcher 4.移动端自适应 1.安装Ruby 安装Ruby,有多种方式,打开官网下载 因为,使用的是window选择Ruby ...

  7. 基于vue-cli配置移动端自适应

    移动端自适应:手淘的 lib-flexible + rem 配置 flexible 安装 lib-flexible 在命令行中运行如下安装: 1 npm i lib-flexible --save 引 ...

  8. vue+vue-cli+淘宝lib-flexible做移动端自适应

    总结用vue+vue-cli+淘宝lib-flexible做移动端自适应方案: 1.安装淘宝lib-flexible npm install lib-flexible --save 2.在入口文价ma ...

  9. 有了这套flexible.js 移动端自适应方案,你就能在移动端的来去自如, (*^__^*)

    flexible.js 移动端自适应方案 一,flexible.js 的使用方式: github地址:https://github.com/amfe/lib-flexible 官方文档地址:https ...

随机推荐

  1. [css]《css揭秘》学习(三)-灵活的背景定位

    一.background-position属性 使用该属性,在不确定容器大小的情况下,也可以指定图案距离容器边缘的位置:但是需要为不支持该属性的浏览器指定回退方案,否则,图案会默认放在左上角. < ...

  2. Java中boolean类型到底占用多少字节

    虽然 Java 虚拟机定义了 boolean 这种数据类型,但是只对它提供了非常有限的支持.在 Java 虚拟机中没有任何供 boolean 值专用的字节码指令,在 Java 语言之中涉及到 bool ...

  3. css3 3D效果

    css3 3D变形 transfrom初学 这个礼拜学了css3 3d,感觉到css无穷的魅力,可以通过几个特定的代码符号创建出3D效果的页面. ___ 透视 一个元素需要一个透视点才能激活3D空间, ...

  4. 【craps赌博游戏】

    /* cpaps赌博游戏 说明: 一个简单的赌博游戏,游戏规则如下:玩家掷两个骰子,点数为1到6,如果第一次点数和为7或11,则玩家胜,如果点数和为2.3 或12,则玩家输,如果和 为其它点数,则记录 ...

  5. iOS 即时通讯 + 仿微信聊天框架 + 源码

    这些你造吗? 即时通讯(IM),在IOS这片江湖里面已经算是一个老者了,我这小旋风也是在很早以前巡山的时候,就知道有即时通讯这个妖怪,以前也多多少少接触过一些,在造APP的时候用过,哎呀,说着说着就感 ...

  6. [Linux] PHP程序员玩转Linux系列-搭建代码开发环境

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的 ...

  7. 解决CSS中float:left后需要clear:both清空

    现在,大部分的横排导航都是通过 ul -> li *n -> a 来实现的.具我所知,要达到这种效果,有几种方法可以实现. 1.传统处理方式: li {float:left;}/*这样,对 ...

  8. iOS开发之Runtime常用示例总结

    经常有小伙伴私下在Q上问一些关于Runtime的东西,问我有没有Runtime的相关博客,之前还真没正儿八经的总结过.之前只是在解析第三方框架源码时,聊过一些用法,也就是这些第三方框架中用到的Runt ...

  9. Scrapy 初体验

    开发笔记 Scrapy 初体验 scrapy startproject project_name 创建工程 scrapy genspider -t basic spider_name website. ...

  10. Struts2学习笔记⑧

    今天是Struts2学习笔记的最后一篇文章了.用什么做结尾呢,这两天其实还学了很多东西,没有记录下,今天就查漏补缺一下. 文件上传与下载.FreeMarker以及昨天没做完的例子 文件上传与下载 文件 ...