一般所熟知的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的设置的更多相关文章

  1. 移动端自适应rem 布局篇

    相信很多刚开始写移动端页面的同学都要面对页面自适应的问题,当然解决方案很多,比如:百分比布局,弹性布局flex(什么是flex),也都能获得不错的效果,这里主要介绍的是本人在实践中用的最顺手最简单的布 ...

  2. 移动端自适应rem布局

    补充一个基本知识,不许笑,1rem等于HTML中设置的字体大小(px) 首先,HTML 的 head 部分中加入如下代码: <meta name="viewport" con ...

  3. 移动端利用rem实现自适应布局

    好久没有写博客了,刚好说说最近遇到的移动端布局问题吧. 本来一直是觉得我的页面布局能力还是不错的,当然,是相对于较基础的来说还是不错的.不过,自己写的案例终归是跟实际开发有区别的,自己写案例的是觉得这 ...

  4. rem 结合 scss 移动端自适应 初级入门demo

    首先说明 本篇 内容 适合初级使用 rem 开发移动端 自适应 公式计算 推导过程, 高手绕路. 目标尺寸 = rem  *  根字体大小 Px   =  rem * (html根字体px) 根字体大 ...

  5. 【转载】rem自适应布局-移动端自适应必备

    原文链接:rem自适应布局-移动端自适应必备 版权所有,转载时请注明出处,违者必究. 由于移动端特殊性,本文讲的是如何使用rem实现自适应,或叫rem响应式布局,通过使用一个脚本就可以rem自适应,不 ...

  6. js移动端自适应动态设置html的fontsize

    JS设计移动端页面时会遇到自适应问题,大多数都知道用rem来设置页面的比例大小,下面就来说几种常见的html中的fontsize设置方法: 1.使用flexible.js插件库.  淘宝就是利用这个来 ...

  7. 最佳移动端h5自适应rem适配方案

    一.利用lib-flexible.postcss-plugin-px2rem插件 进行移动端rem适配. 1.第一 引入lib-flexible . 安装lib-flexible: npm i lib ...

  8. 使用rem配置PC端自适应大屏

    效果如下 使得大屏不论在什么宽高比例依然能展示全部数据 安装 npm install -S postcss-pxtorem rem配置思路 原先的rem函数是能解决大部分的问题的,如果展示不全,也可以 ...

  9. 浅谈meta viewport设置移动端自适应

    1.viewport 移动设备上的viewport是设备屏幕上用来显示网页的那部分区域,再具体一点就是浏览器上用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览器 ...

随机推荐

  1. service里无法注入mapper,mapper空指针

    被困扰了一天,终于解决了,记录一下 下面是mapper的代码 @Mapper public interface ProductDao { @Select("select * from pro ...

  2. Ansible自动部署lnmp架构+上线电商

    1.首先准备3台机器 ansible机器:192.168.52.34 目标主机:192.168.52.35 目标主机:192.168.52.36 2.关闭防火墙 [root@localhost ~]# ...

  3. linux学习13 Linux运维常用文件管理命令及系统变量基础

    一.文件管理命令 1.cp命令,copy a.单源复制,cp [OPTION]... [-T] SOURCE DEST 如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中. 如果D ...

  4. win10系统绑定本地IP和mac地址

    第一步:找到自己的IP和mac地址 1.按着win键+R键,输入cmd(大小写都一样) 2.命令: ipconfig   /all              #查看所有地址 然后按“回车键” 3.这样 ...

  5. 使用mustache 做为docker容器运行动态配置工具

    很多时候我们需要在启动容器的时候基于配置文件运行,如果在配置比较简单的时候我们可以通过环境变量 注入,同时当前12 factors 越来越融入大家的开发中了(对于配置通过环境变量处理),但是好多老的软 ...

  6. 系统权限划分Liunx版

    系统权限: 1. 当一个用户有两个系统的登录权限时,没有使用原来的那种系统id集合: 1,2,5形式,而是使用了这种形式 2. 杜绝重复

  7. access us

    Ubuntu下设置 chrome的SwitchyOmega Wiki (简体中文)wiki Linux安装配置客户端及开机自动启动 运维 安装 配置 搭建服务以及配置多用户 安装和配置 一键搭建 服务 ...

  8. Goldbach’s Conjecture(信息学奥赛一本通 1622)

    [题目描述] 原题来自:Ulm Local,题面详见:POJ 2262 哥德巴赫猜想:任何大于 44 的偶数都可以拆成两个奇素数之和. 比如: 8=3+5 20=3+17=7+13 42=5+37=1 ...

  9. SpringBoot(十七):SpringBoot2.1.1数据类型转化器Converter

    什么场景下需要使用类型化器Converter? springboot2.1.1在做Restful Api开发过程中往往希望接口直接接收date类型参数,但是默认不加设置是不支持的,会抛出异常:系统是希 ...

  10. SpringCloud之application.properties和bootstrap.properties区别

    Spring是有上下文一说的,也叫Application Context,Application Context又是有父子关系的,所以必须要理解ApplicationContext是什么.Spring ...