移动端自适应rem的设置
一般所熟知的css样式大小单位有px,em。
px:精确地描述元素大小,不随屏幕大小的变化而变化;
em:相对于父元素的大小,如果有层层嵌套的话会导致这个值非常大或者非常小。
在写移动端页面的时候为了使页面能够适应多种尺寸的移动设备大小,通常会用rem来表示各个元素的大小。
rem:font size of the root element,即相对于根元素字体的大小。
因此,在开发页面之前,需要给根元素的字体指定一个值。
一般情况下,浏览器默认的根元素字体的大小是16px,因此为了方便计算,可以将根元素字体大小可以设置为
html{
font-size:62.5%;
/*16 * 62.5% = 10;根元素字体大小是10px*/
/* */
}
h1{
font-size:1.2rem;/*h1字体的大小是12px*/
}
然后通过媒体查询针对不同的屏幕大小设置font-size的百分比,就可以实现前端页面适配了。
还有一种方法是将根元素font-size的大小设置成屏幕宽度的一定比,这样通过不同屏幕打开时1rem的值自然也就不一样了。
document.getElementsByTagName('html')[0].style.fontSize = window.screen.width /10 + 'px';
如果是iPhone5的尺寸,那么根元素字体大小就是32px;
如果是IPhone6的尺寸,那么根元素字体大小就是37.5px;
但是这样我们在设置各个元素大小的时候就很难换算了啊。没关系,css编译工具可以解决这个问题。以less为例:
设置一个函数,假设设计图是iPhone的尺寸,设计图上p的字体大小是12px,那么p在不同屏幕的字体大小就是(12/37.5)rem。
.fs(@px){
font-size:unit(@px/37.5,rem); /*37.5是设计图的尺寸对应的屏幕宽度除以10*/
}
p{
.fs(12);
}
其他的宽度和高度也写成函数的形式。
因为某些低版本浏览器不支持CSS3或者默认字体不是16px,因此在PC端就不要再使用rem了。
移动端自适应rem的设置的更多相关文章
- 移动端自适应rem 布局篇
相信很多刚开始写移动端页面的同学都要面对页面自适应的问题,当然解决方案很多,比如:百分比布局,弹性布局flex(什么是flex),也都能获得不错的效果,这里主要介绍的是本人在实践中用的最顺手最简单的布 ...
- 移动端自适应rem布局
补充一个基本知识,不许笑,1rem等于HTML中设置的字体大小(px) 首先,HTML 的 head 部分中加入如下代码: <meta name="viewport" con ...
- 移动端利用rem实现自适应布局
好久没有写博客了,刚好说说最近遇到的移动端布局问题吧. 本来一直是觉得我的页面布局能力还是不错的,当然,是相对于较基础的来说还是不错的.不过,自己写的案例终归是跟实际开发有区别的,自己写案例的是觉得这 ...
- rem 结合 scss 移动端自适应 初级入门demo
首先说明 本篇 内容 适合初级使用 rem 开发移动端 自适应 公式计算 推导过程, 高手绕路. 目标尺寸 = rem * 根字体大小 Px = rem * (html根字体px) 根字体大 ...
- 【转载】rem自适应布局-移动端自适应必备
原文链接:rem自适应布局-移动端自适应必备 版权所有,转载时请注明出处,违者必究. 由于移动端特殊性,本文讲的是如何使用rem实现自适应,或叫rem响应式布局,通过使用一个脚本就可以rem自适应,不 ...
- js移动端自适应动态设置html的fontsize
JS设计移动端页面时会遇到自适应问题,大多数都知道用rem来设置页面的比例大小,下面就来说几种常见的html中的fontsize设置方法: 1.使用flexible.js插件库. 淘宝就是利用这个来 ...
- 最佳移动端h5自适应rem适配方案
一.利用lib-flexible.postcss-plugin-px2rem插件 进行移动端rem适配. 1.第一 引入lib-flexible . 安装lib-flexible: npm i lib ...
- 使用rem配置PC端自适应大屏
效果如下 使得大屏不论在什么宽高比例依然能展示全部数据 安装 npm install -S postcss-pxtorem rem配置思路 原先的rem函数是能解决大部分的问题的,如果展示不全,也可以 ...
- 浅谈meta viewport设置移动端自适应
1.viewport 移动设备上的viewport是设备屏幕上用来显示网页的那部分区域,再具体一点就是浏览器上用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览器 ...
随机推荐
- Python 鼠标键盘操作
1.鼠标操作 from pymouse import PyMouse myMouse = PyMouse() #获取当前的鼠标位置 # nowP = myMouse.position() # prin ...
- 洛谷 P1120 小木棍 题解
每日一题 day54 打卡 Analysis 一,管理员已经在题目中告诉你输入时去掉长度大于50的木棍. 二,想好搜索什么.很明显我们要枚举把哪些棍子拼接成原来的长棍,而原始长度(原来的长棍的长度)都 ...
- VisualStudio中集成扩展调试SOS
SOS扩展也是可以和VisualStudio进行集成的,这样真的方便了我们调试一些性能要求比较高的程序,当程序运行一段时间后我们用VS附加到进程,然后查看一些重要的对象数据,但是此时我们看不到.NET ...
- nodegui 使用react开发跨平台应用试用
nodegui官方团队提供了基于react 应用开发方式,同时我们集成官方的packer 进行快速的应用打包 项目说明 项目使用了官方的计算机应用,我使用官方的react starter,同时添加了p ...
- 使用jenkins exporter 监控jenkins 构建任务
jenkins 提供了rest api,我们可以基于rest api 暴露prometheus metrics,社区已经有了好多 开源的实现了,使用起来也比较方便,以下集成几个进行简单的测试 环境准备 ...
- Java实现PV操作 | 读者与写者(在三种情况下进行讨论)
注 :本文应结合[天勤笔记]进行学习. 1.读者优先 设置rmutex信号量来对readcount变量进行互斥访问.mutex信号量对写者与读者进行同步. static syn rmutex=new ...
- js时间练习
编写代码,将当前日期按"2017-12-27 11:11 星期三"格式输出 var t1 = new Date(); console.log(t1.toLocaleString() ...
- DNN的BP算法Python简单实现
BP算法是神经网络的基础,也是最重要的部分.由于误差反向传播的过程中,可能会出现梯度消失或者爆炸,所以需要调整损失函数.在LSTM中,通过sigmoid来实现三个门来解决记忆问题,用tensorflo ...
- hotspot的内存
java memory主要分heap memory 和 non-heap memory,其计算公式如下: Max memory = [-Xmx] + [-XX:MaxPermSize] + numbe ...
- select多选左移右移的实现
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...