首先说明 本篇 内容 适合初级使用 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. Codeforce 712A Memory and Crow

    A. Memory and Crow time limit per test:2 seconds memory limit per test:256 megabytes input:standard ...

  2. Python系列之Collections内置模块(1)

    collections 是 python 的内置模块,源码位于 Lib/collections/__init__.py ,该模块提供了通用的数据容器. deque 容器对象 通过 from colle ...

  3. WebServerice的发布

    在webserverice一文中,我们简单的介绍了一下什么是webserverice,以及如何建立一个webserverice服务.今天,我们一起学习下webserverice是如何发布的. 为什么要 ...

  4. C++中将string类型转化为int类型

    写程序需要将string转化为int,所以就探索了一下. 方法一:atoi函数 atoi函数将字符串转化为整数,注意需要stdlib库.所以就尝试了一下: #include <iostream& ...

  5. 读书笔记 effective c++ Item 13 用对象来管理资源

    1.不要手动释放从函数返回的堆资源 假设你正在处理一个模拟Investment的程序库,不同的Investmetn类型从Investment基类继承而来, class Investment { ... ...

  6. CREELINKS平台_处理器CeAd资源使用说明(CeAd的配置与使用)

    0x00 CREELINKS平台简介     CREELINKS(创e联)是由大信科技有限公司研发,集合软硬件.操作系统.数据云储存.开发工具于一体,用于物联网产品的设计.研发与生产的平台.    平 ...

  7. 使用Python实现子区域数据分类统计

    目录 前言 geopandas简介 子区域数据分类统计 总结 一.前言        最近碰到一个需求,需要统计某省内的所有市的某数据分布情况信息.现有该省的数据分布情况以及该省的行政区划数据.我通过 ...

  8. POJ 2125 Destroying The Graph 二分图 最小点权覆盖

    POJ2125 题意简述:给定一个有向图,要通过某些操作删除所有的边,每一次操作可以选择任意一个节点删除由其出发的所有边或者通向它的所有边,两个方向有不同的权值.问最小权值和的解决方案,要输出操作. ...

  9. 微信小程序 网络请求之re.request 和那些坑

    微信小程序有四种网络请求类型,下面只详细介绍普通HTTPS请求(wx.request) 普通HTTPS请求(wx.request) 上传文件(wx.uploadFile) 下载文件(wx.downlo ...

  10. ABP学习笔记

      1. 用 Nhibernate:CountAsync 是定义在System.Data.Entity里的 var totalCount = await query.CountAsync(); 出现以 ...