用Rem来无脑还原Web移动端自适应的页面
(function (win,doc){
if (!win.addEventListener) return;
var html=document.documentElement;
function setFont()
{var cliWidth=html.clientWidth;
html.style.fontSize=100*(cliWidth/640)+'px';
}
win.addEventListener('resize',setFont,false)
doc.addEventListener('DOMContentLoaded',setFont,false)
})(window,document);
解读:
首先,不去鸟不支持事件监听的浏览器(IE6、7、8),当然不写也可以,因为对字号的自适应的需求都是移动端。
当出现窗口大小改变的时候给window绑定一个监听,运行一个叫setFont的函数;当页面的Dom结构加载完也运行setFont(或者不监听直接setFont()运行也可以。)
setFont函数用来获取屏幕分辨率,然后按比例来设置html的字号。
我这里是以100px为基础来缩放。为什么是100px?待我细细说明:
我们一般拿到手的设计稿都是640px的,我们不以手机分辨率为考量,如果单纯1:1还原640px的页面,那么我们的页面根目录的字号就是100px(100*(640/640)=100px),那么那么设计稿上选择一个文案,然后PS告诉我们字号是24px,那么我们就在页面里给这段文案设置成0.24rem,那么640px的页面上字体就是24px啦。
然后当我们考虑比如页面是5/5s上看,那么当前页面字号就是50px(100*(320/640)=50px),那么0.24rem会以12px的大小展示出来。而640px宽的设计稿上的24px的字体,在320px的页面下,就是以12px显示的~
这就是为什么要以100px为基础字号,这样页面里量的是24px的字体,我代码里写0.24rem就会自动在页面里以12px显示了~而且它可以在6/6p上以13或者14px的样式展示出来~
那你说,我遇到了奇葩的750px为分辨率的设计稿(比如是iphone6的),那你就把公式改成 100*(cliWidth/750)+px就行(也就是设计稿是多宽,公式里就写多少)。然后设计稿里量的Xpx大小,就写多少0.Xrem~什么分辨率的设计稿都不怕啦
tips:
100px只是为了让我偷懒不用去换算字体大小的,如果喜欢可以自己订1000px,然后写0.012rem这样。但是不要写像10px这样的基础字号,因为有些浏览器有最小字号的限制,比如设置了页面基础字号是10px,但是实际上最小只认11px,那么2rem的字体,本身是希望以20px显示,可能最后是22px显示的。
用Rem来无脑还原Web移动端自适应的页面的更多相关文章
- Web移动端 自适应缩放界面
在开发App端的网页时,要适配iphone.ipad.ipod.安卓等各种机型,一般是直接使用em.px转em.界面缩放. 本章是通过将界面缩放,等比例显示在各机型上.过程中遇到了些问题和大坑~ 然后 ...
- Go语言及Web框架Beego环境无脑搭建
[原]Go语言及Web框架Beego环境无脑搭建 本文涉及软件均以截至到2013年10月12日的最新版本为准 1. 相关软件准备: 1) go1.2rc1.windows-386.msi,对应32位w ...
- 【原】无脑操作:express + MySQL 实现CRUD
基于node.js的web开发框架express简单方便,很多项目中都在使用.这里结合MySQL数据库,实现最简单的CRUD操作. 开发环境: IDE:WebStorm DB:MySQL ------ ...
- 【原】无脑操作:eclipse + maven搭建SSM框架
网上看到一些Spring + Spring MVC + MyBatis框架的搭建教程,不是很详细或是时间久远了,自己动手整一个简单无脑的! 0.系统环境 1)Windows 10 企业版 2)JDK ...
- 【原】无脑操作:IDEA + maven + Shiro + SpringBoot + JPA + Thymeleaf实现基础授权权限
上一篇<[原]无脑操作:IDEA + maven + Shiro + SpringBoot + JPA + Thymeleaf实现基础认证权限>介绍了实现Shiro的基础认证.本篇谈谈实现 ...
- 【原】无脑操作:IDEA + maven + Shiro + SpringBoot + JPA + Thymeleaf实现基础认证权限
开发环境搭建参见<[原]无脑操作:IDEA + maven + SpringBoot + JPA + Thymeleaf实现CRUD及分页> 需求: ① 除了登录页面,在地址栏直接访问其他 ...
- 无插件纯web 3D机房 (第四季:大型园区、地球仪效果和其他扩展应用)
前言 初次见面的朋友们大家好,这篇文章是"无插件纯web 3D机房"系列的第四季,感兴趣的朋友可从头开始观看,以下是正确的阅读顺序: 无插件纯web 3D机房(第一季:从零开始搭建 ...
- 计蒜客 无脑博士 bfs
题目链接无脑博士的试管们 思路:直接模拟倒水过程即可,但是需要记忆判断当前的情况是否已经处理过.dfs和bfs都ok AC代码 #include <cstdio> #include < ...
- CodeForces 909E Coprocessor(无脑拓扑排序)
You are given a program you want to execute as a set of tasks organized in a dependency graph. The d ...
随机推荐
- idangerous swiper
最近使用Swipe.js,发现中文的资料很少,试着翻译了一下.能力有限,翻译难免错漏,欢迎指出,多谢! 翻译自:http://www.idangero.us/sliders/swiper/api.ph ...
- SET IDENTITY_INSERT ON/OFF 权限
今天突然遇到了,找不到对象“XXXX”,因为它不存在或者没有您所需的权限,于是检查程序,突然发现程序中有一段代码是: SET IDENTITY_INSERT eticket ON //执行业务 ... ...
- 手机测试常见的BUG解析
今天总结之前学习到关于在手机软件测试过程中经常出现的一些现象,这些现象都是什么原因导致的,我们应该如何去抓取LOG,抓取的LOG的路径在哪里 下边我们来看 1. 手机遇到 “应用无响应” 有两个原 ...
- 九度OJ 1187:最小年龄的3个职工 (排序)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2291 解决:936 题目描述: 职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来. 输入: 输入第一行包括1个 ...
- oschina git服务, 如何生成并部署ssh key
1.如何生成ssh公钥 你可以按如下命令来生成 sshkey: ssh-keygen -t rsa -C "xxxxx@xxxxx.com" # Generating public ...
- mysql(root用户密码设置)
root密码重置 修改root用户的密码: /*登录mysql*/ mysql -uroot -p123 /*切换数据库*/ use mysql /*修改root用户的密码*/ update user ...
- python初学者总结
学习python首先配置好工作环境,因为不同版本之间的python是不兼容了 原创:01coding.com win7安装环境过程: 1:下载python 建议下载两个不同版本官方已给出 https: ...
- nginx-gridfs的安装
mongodb中gridfs适合存放视频和高清图片等等超大文件(小的文件建议不要存在mongodb中): 下面是在centos下配置nginx来訪问mongodb中的mp4文件: 1:安装nginx- ...
- java面试之数据库面试知识点【转】
1. 主键 超键 候选键 外键 主 键: 数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合.一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null). 超 键: 在关系中 ...
- shell 日期加减运算
比如今日是2012-04-22 $ date -d "+1 day" +%Y-%m-%d 2012-04-23 $ date -d "-1 day" +%Y ...