网页常见单位px、em、rem;其中rem是css3新出的单位,官网是这样定义的:“font size of the root element”,意思是:相对长度单位,相对于根元素(即html元素)font-size计算值的倍数。

网上搜索了一些关于px和rem有何区别的文章,大部分都是说rem在针对用户使用浏览器缩放的时候有较好的体验,而px会在浏览器缩放的时候破坏我们网页原有的布局。但是经过我自己的试验,发现并没有这个问题;也就是说如果只是针对浏览器缩放来说,用px和rem是没有什么区别的;

后来在这里看到了这样的一段文字  >>链接地址:http://ons.me/490.html   注:此段转载自西门的后花园

bug 1:例如reset里并没有设置网站文字字号,所以我会在body里直接写font-size:1.2rem,让整个网页字号为12px。但在Android的Chrome里无效,还是按照16px来计算而不是我手动设置10px计算。所以要想给整个网页设置默认字号,最粗暴的办法就是直接在body里设置em或者px字号,例如body{font-size:1.2em}或者12px,推荐em。body直接继承html的字号,可以间接实现rem的功能。然后其他地方用rem是没问题的。

bug 2:因为Chrome设置了最小字号为12px,导致如果在宽高、行高、边距等地方用rem,虽然在html那设置了10px,但默认还是会按照12px来计算,所以实际会偏大。建议rem只是在字号上用比较好。

到此,总算是弄明白了rem和px的不同之处

js动态计算rem值

/**
* [以iPhone6的设计稿为例js动态设置文档 rem 值]
* @param {[type]} doc [文档元素]
* @param {[type]} win [window]
* @return {[type]} [description]
*/
(function(doc, win) {
var docEl = doc.documentElement;
var resizeEvent = 'orientationchange' in window ? 'orientationchange' : 'resize';
var remcalc = function() {
var clientWidth = docEl.clientWidth;
var fontValue;
if (!clientWidth) return;
fontValue = ((62.5 * currClientWidth) / 375).toFixed(2);
fontValue = fontValue > 106.67 ? 106.67 : fontValue;
window.baseFontSize = fontValue;
docEl.style.fontSize = baseFontSize + 'px';
};
if (!docEl.addEventListener) return;
win.addEventListener(resizeEven, remcalc, false);
doc.addEventListener('DOMContentLoaded', remcalc, false);
})(document, window);

关于rem的学习的更多相关文章

  1. 关于px、em和rem的学习笔记!

    刚参加前端工作,字体一般使用px来设置大小,在处理响应式界面时对字体的大小变化处理感觉很吃力,得知对字体的大小有三种大小格式设置方式,便想一探究竟,希望可以有所帮助! px px像素(Pixel),相 ...

  2. 关于手机适配中的rem的学习随笔

    githup 下载地址 :https://github.com/comjustforfun/remformobile adaptivejs利用rem解决移动端页面开发的自适应问题 页面模板初始化的时候 ...

  3. 第七十七节,CSS3前缀和rem长度单位

    CSS3前缀和rem长度单位 学习要点: 1.CSS3前缀 2.长度单位rem 本章主要探讨HTML5中CSS在发展中实行标准化的一些问题,重点探讨CSS3中新属性前缀问题和新的单位rem. 一 CS ...

  4. 移动端适配单位rem

    0 写在前面 本周惊喜地发现,其他各个老师的软工班(罗杰老师班和欧阳老师班)的软工项目的alpha版本都已经发布了!(然而我们软工项目还没开始写代码…逃…) 十分好奇的我第一时间下载了一些他们的产品进 ...

  5. 大前端学习笔记整理【五】rem与px换算的计算方式

    前言 这段时间的小项目中算是真正意义上使用了rem来进行移动端的页面布局,项目结束了我反思了一下之前的对于rem的使用...原来我以前对rem用法完全是在搞笑啊!!结合这次这个小项目,我觉得我也有必要 ...

  6. 【转】取模(mod)与取余(rem)的区别——Matlab学习笔记

    昨天在学习Matlab的数学函数时,教程中提到取模(mod)与取余(rem)是不同的,今天在网上具体查了一下: 通常取模运算也叫取余运算,它们返回结果都是余数.rem和mod唯一的区别在于:    当 ...

  7. 【学习】如何制作手机端html模板(REM的实际应用)

    以前制作手机页面时,总是很迷茫,不知从何着手,页面也不知如何处理.会用一些百分比啊,媒体查询啊,还有就是目测了,但是各种手机端的屏幕适配是个老大难的问题,没有做到百分百兼容的.自从发现了rem这个好东 ...

  8. css长度单位学习(em,rem,px,vw,vh)

    绝对长度单位 绝对长度单位代表一个物理测量 [像素px(pixels)] 像素,为影像显示的基本单位,译自英文"pixel",pix是英语单词picture的常用简写,加上英语单词 ...

  9. rem和em学习笔记及CSS预处理(未完待续)

    以下为读http://www.w3cplus.com/css/when-to-use-em-vs-rem.html的感悟,收获满满! 1.当元素A的字体单位是n rem时,它将根据根元素(html)的 ...

随机推荐

  1. 《编写可维护的JavaScript》——JavaScript编码规范(六)

    变量.函数和运算符 在讨论过基本的JavaScript书写格式化之后,接下来关注如何使用函数.变量和运算符来减少复杂度和增强可读性就显得十分重要了. 变量声明 变量声明是通过var语句来完成的.var ...

  2. IOS OC数据类型

    1.只有浮点型数据除以0.0才能得到+-无穷大的数,而整形或char型数据会得到边界值 2.BOOL的实际类型是signed char,他的底层只占一个字节(只有八位),如果将一个较大的非零整数值赋给 ...

  3. Material Design学习

    前言: 最为一个用习惯了bootstrap的前端小菜,今天偶然听闻material design 这个从未听闻的前端框架,带着好奇开始了新的尝试,并将bootstrap跟material design ...

  4. 【转】创建SVN仓库的步骤

    转载地址:http://www.cnblogs.com/ivan0626/p/3783053.html   今天在客户现场联调,两个开发人员之间的代码想用SVN来管理,所以就临时在本地机器上搭建一个S ...

  5. grunt学习笔记

    1. 在使用grunt前需要执行的几条命令和用途 npm uninstall -g grunt  删除掉全局grunt npm install -g grunt-cli 把grunt加入你的系统搜索路 ...

  6. webapi mvc session一直获取不到问题

    前一段时间在给移动端写接口时遇到一个调用接口发送邮箱 session 一直获取不到的问题.我来给遇到问题的同志们说一说 自个在网上查了好多资料,问了一些朋友后.终于找到解决方案了. 大家都知道weba ...

  7. King's Quest —— POJ1904(ZOJ2470)Tarjan缩点

    King's Quest Time Limit: 15000MS Memory Limit: 65536K Case Time Limit: 2000MS Description Once upon ...

  8. [翻译]lithium 快速上手(QuickStart)

      ​ 快速入门 经典博客教程 很感谢你尝试Li3!这一部分栏目为那些想了解这个框架可以做什么的php用户所设计.像这样深入代码是一种很好的方式去体会快速应用开发(Rapid Application ...

  9. CentOS直接解压可用的memcached、nginx、keepalived

    Centos均基于x86_64版本,下面相关文件编译时使用用户组为www,用户为www 相关命令: groupadd -r www useradd -r -g www -M www memcached ...

  10. centos7 dokcer fastdfs

    docker run --name=fastdfstmp -tid centos /bin/bash docker cp /home/fastdfs fastdfstmp:/home docker e ...