rem自适应布局小结001
在最近的移动端布局当中,最炙手可热的方式便是使用rem进行元素的布局。以下便是从最近的文章中所总结出来的一点东西。
首先,我们必须有以下的疑问:
rem的本质是什么?
rem如何实现自适应布局?
如何根据设计稿来调整rem的值?
rem布局是能纯CSS还是必须JS进行辅助?
接着,我们来稍微解答或者解决以上的问题
一.rem的自适应原理
rem(font size of the root element)是指相对于根元素的字体大小的单位,既是一个相对的计量单位。而于此类似的便是em(font size of the element)是指相对于父元素的字体大小的单位。所以,两个都是相对计量单位。区别在于一个相对于根元素,一个相对于父元素。rem就是根据HTML的font-size大小来进行的变化。基于该原理,可以在每一个设备下根据设备的宽度设置对应的html字号,从而实现自适应布局。
二.rem 的值
目前有两种,一种是根据js来调整html的字号,另一种则是通过媒体查询来调整字号。
三.移动端使用rem布局
在采用rem之前移动端的主流适配方案
1.流式布局(百分比布局)
优点: 简单方便,使用简单,只需固定高度即可,宽度自适应 ;
缺点: 在大屏幕的手机下显示效果会变成有些页面元素宽度被拉的很长,但是高度还是和原来一样,实际显示非常的不协调;
2.固定宽度
优点: 与设备宽度做等比缩放 ;
缺点: 在大屏幕手机下两边是留白的,还有一个就是大屏幕手机下看起来页面会特别小,操作的按钮也很小,手机淘宝首页起初是这么做的,但最后改版了,采用了rem;
3.响应式做法
优点:可以节约成本,不用再专门为自己的网站做一个webapp的版本,所以一般都是中小型的门户或者博客类站点会采用响应式的方法从web page到web app直接一步到位;
缺点:工作量大,维护性难,这种方式在国内很少有大型企业的复杂性的网站在移动端用这种方法去做;
采用rem的优势
开头提过rem是指相对于根元素的字体大小的单位,网页中的根元素指的是html我们通过设置html的字体大小就可以控制rem的大小。
html{
font-size:10px;
}
.btn{
width:6rem;
height:3rem;
line-height:3rem;
font-size:1.2rem;
border: 1px solid #333;
color: #333;
border-radius: 0.5rem;
text-align: center;
margin: 10px auto;
}
此时,我们会发现整个按钮大小是60px*30px。如果我们将根元素的font-size更改为20px,按钮就会变成120px*60px。是之前的等比放大。
所以。我们仅仅是改变了根元素html的font-size,而.btn元素的width,height的rem属性不变,就实现了按钮在web中的改变。
所以,得出
1rem = 10px 在根元素的 font-size = 10px 的时候;
1rem = 20px 在根元素的 font-size = 20px 的时候;
1rem = 40px 在根元素的 font-size = 40px 的时候;
在上面两个例子中我们发现第一个案例按钮是等比例放大到第二个按钮,html font-size的改变就会导致按钮的大小发生改变,我们并不需要改变先前给按钮设置的宽度和高度,其实这就是我们最想看到的。
正是基于这个出发,我们可以在每一个设备下根据设备的宽度设置对应的html字号,从而实现了自适应布局。
三.现在rem主流的适配有两种方案:
1.rem随设备宽度做自适应,scale值固定为1 ;
2.rem随设备宽度做自适应,viewport进行缩放,scale值不固定;
rem自适应布局小结001的更多相关文章
- rem自适应布局的回顾总结
使用rem实现自适应布局,应该算是当前移动前端的一大趋势,有些人对此还有点迷惑,搞不懂rem是如何实现自适应布局,如何根据设计稿来调整rem的值?rem布局如何用雪碧背景图片?rem一定要加载JS吗? ...
- 【转载】rem自适应布局-移动端自适应必备
原文链接:rem自适应布局-移动端自适应必备 版权所有,转载时请注明出处,违者必究. 由于移动端特殊性,本文讲的是如何使用rem实现自适应,或叫rem响应式布局,通过使用一个脚本就可以rem自适应,不 ...
- 【转】rem自适应布局
rem自适应原理 rem是根据html的font-size大小来变化,正是基于这个出发,我们可以在每一个设备下根据设备的宽度设置对应的html字号,从而实现了自适应布局.更多介绍请看这篇文章:rem是 ...
- rem自适应布局
rem自适应原理 rem是根据html的font-size大小来变化,正是基于这个出发,我们可以在每一个设备下根据设备的宽度设置对应的html字号,从而实现了自适应布局.更多介绍请看这篇文章:rem是 ...
- 移动端rem自适应布局(切图)
本篇适用于初次使用rem为单位切图而无从下手的童鞋.核心是根据屏幕动态改变根元素字体大小,以达到适配各种屏幕.这只是一个拿来就用的教程.很多东西没有详细说明.不过对于快速做手机端切图很有帮助. 模板: ...
- rem 自适应布局 bootstrap 移动端适配
移动端适配用:rem 自使用布局用:bootstrap
- 手机端rem自适应布局实例
首先要书写核心js代码,控制住页面的初始大小:我是以750px(即iPhone6)的标准,设置font-size:100px:<script> (function (doc, ...
- 移动端rem自适应布局关键代码
function resi() { var html = document.querySelector("html"); var wW = document.body.client ...
- rem自适应布局-移动端自适应必备:flexible.js
http://caibaojian.com/flexible-js.html
随机推荐
- Ubuntu 16.04安装QtCharts时报错:'qtConfig' is not a recognized test function.
错误: 'qtConfig' is not a recognized test function. 解决方法: 其实5.9分支的版本有问题,转成5.7分支即可. git clone https://g ...
- 我的arcgis培训照片14
来自:http://www.cioiot.com/successview-562-1.html
- IPv6 Ready Logo测试环境搭建
最新的IPv6 Ready Logo tool http://interop.ipv6.org.tw/CERouter/ 安装最新的tool,要求FreeBSD在8.0以上 uname -r查看版本 ...
- SAP ABAP 的经常使用debug方式
SAP ABAP 的经常使用debug方式: 1. 直接在程序中设断点 在se38里面打上breakpoint,程序执行到该处即进入debug模式 2.background Job的debug 进入S ...
- ubuntu下vim及man帮助文档的汉化
vim是一个功能超级强大的编辑器,当然我们也可将它配置超强的IDE.这类教程网上非常多,我就不再此赘述了. 我们在使用中对不熟悉的命令,不熟悉的插件的使用方法常常须要查看文档,全英文环境确实看着人头都 ...
- 小贝_mysql 存储过程
存储过程 简要: 1.什么是存储过程 2.使用存储过程 一.存储过程 概念类似于函数,就是把一段代码封装起来.当要行这段代码的时候,能够通过调用该存储过程来实现.在封装的语句体里面.能够用if/els ...
- js类继承扩展super
相应的资料https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/super 例子: class Pol ...
- Woody的逻辑游戏--怎样换轮胎
题目:有一个做长途运输的司机要出发了,他用作运输的车是三轮车.轮胎的寿命是2万里,如今他要进行5万里的长途运输.计划用8个轮胎完毕运输任务,如何才干做到呢? 首先将轮胎从1-8依次编号,然后例如以下所 ...
- lua-5.2.3编译问题记录"libreadline.so: undefined reference to `PC'"
作者:zhanhailiang 日期:2014-10-21 [root@~/software]# cd lua-5.2.3 [root@~/software/lua-5.2.3]# make linu ...
- 特征列 属性值 获取 vowpal wabbit 生成DNN 的训练测试数据
用户特征文件 userFeature.data 每 行 代 表 一 个 用 户 的 特 征 数 据, 格 式 为: “uid|features”,uid 和 features 用竖线“|”分隔.其中 ...