首先说明 本篇 内容 适合初级使用 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. [nginx]Windows和Mac下,nginx反向代理服务器配置

    最近做项目,前端需要用到nginx反向代理来转发请求,总结了一下在Windows和Mac上的配置,以备查询. 一.Windows 修改nginx的配置文件,nginx.conf. 1)nginx.co ...

  2. java_流

    转自:http://blog.csdn.net/hguisu/article/details/7418161 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有 ...

  3. iterator的实现原理

    1.iterator遍历linkedlist集合 Iterator li = list.iterator(); while(li.hasNext()){ System.out.println(li.n ...

  4. 基于Ubuntu12.04-server版的openstack F版搭建步骤

    本文为双节点搭建,分为计算(IP1)和控制节点(IP2) 说明: 计算节点组件: 1.mysql 2.keystone 3.Nova 4.glance 5.rabbitmq 控制节点组件: 1.cin ...

  5. angularJS+requireJS实现controller及directive的按需加载

    最近因为项目的比较大,需要加载的js文件较多,为了提高首屏页面的加载速度,需要对js文件进行按需加载,然后网上参考了一些资料,自己也深入研究一番之后,实现了按需加载控制器js文件及指令js文件的效果: ...

  6. ajax实现下载功能

    ajax实现下载功能 适用场景:由于点击按钮下载excel响应时间过长,此时间段加入加载样式(灰色层.加载动画): 浏览器弹出下载框后,上面的加载样式去掉.  方     法 :使用jquery.fi ...

  7. loadrunner工作原理

  8. jQuery中绑定事件bind() on() live() one()的异同

    jQuery中绑定事件的四种方法,他们可以同时绑定一个或多个事件 bind()-------------------------版本号小于3.0(在Jquery3.0中已经移除,相应unbind()也 ...

  9. python2.7读汉字的时候出现乱码,如何解决

    我使用的是window系统,安装Anaconda,所以用的是. 1.数据形式 2.读进来乱码 3.解决办法 3.1方法1 import pandas as pd #pd.read_csv('c:/us ...

  10. 用C++编一程序,先输出一行sun mon tue wed thu fri fri,接着使用右对齐打印出日期,像日历那样

    用C++编一程序,先输出一行sun mon tue wed thu fri fri,接着使用右对齐打印出日期,像日历那样 先输出一行sun mon tue wed thu fri fri,再提醒用户输 ...