Rem实现移动端适配
移动端适配
- web页面跑在手机端(h5页面)
- 跨平台
- 基于webview()
- 基于webkit
常见适配方法
pc端采用display:inline-block,让div盒子横着排
移动web:采用定高,宽度百分比,flex弹性布局,meDIA QUERY 媒体查询;
媒体查询
结合css,通过媒体类型(screen、print)和媒体参数(max-width)@media screen and (max-width: 320px){
/* css在屏幕跨度<=320px时这段样式生效 */
.inner{
float: left;
}
}
@media screen and (min-width: 321px){
.inner{//
}
}
以上实现了一个简单的横排和竖排的响应
rem原理与简介
Rem就是一个字体单位,类似于px,
区别:他会根据HTML根元素大小而定,同时也可以作为高度和宽度的单位。
适配原理:动态修改html的font-size适配;rem是通过不同屏幕的大小设置html根元素的font-size的属性大小来实现适配。/* +_media实现*/
@media screen and (max-width: 360px) and (min-width: 321px){
html{
font-size: 20px;
}
}
@media screen and (max-width: 320px){
html{
font-size: 24px;
}
}
通过JS动态设置font-size:
//获取视窗宽度
let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;
console.log(htmlWidth);
let htmlDom = document.getElementsByTagName('html')[0];
htmlDom.style.fontSize = htmlWidth/10 + 'px';
rem进阶
rem基准值计算
1rem = 16px
rem数值计算与构建
170/16 = 170px
rem与scss结合使用(node-sass安装)
也可以直接安装sass(安装教程http://www.cnblogs.com/yehui-mmd/p/8035170.html)rem适配实战
通过监听浏览器视口来进行适配let htmlDom = document.getElementsByTagName('html')[0];
window.addEventListener('resize', (e)=>{
//获取视窗宽度
let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;
htmlDom.style.fontSize = htmlWidth/10 + 'px';
})
定义rem适配的函数及使用(sass语法)
@function px2rem($px) {
$rem:37.5px;//iphone6
@return ($px / $rem) + rem;
}
.header{
width:100%;
height: px2rem(40px);
background-color: red;
padding-left: px2rem(23px);
}
Rem实现移动端适配的更多相关文章
- JS+rem,移动端适配
window.onresize = function () { setHtmlFz(); } setHtmlFz(); function setHtmlFz() { // 基础值 var baseVa ...
- 小tips:使用rem+vw实现简单的移动端适配
首先设置meta属性,如下代码: <meta name="viewport" content="width=device-width, initial-scale= ...
- 移动端适配单位rem
0 写在前面 本周惊喜地发现,其他各个老师的软工班(罗杰老师班和欧阳老师班)的软工项目的alpha版本都已经发布了!(然而我们软工项目还没开始写代码…逃…) 十分好奇的我第一时间下载了一些他们的产品进 ...
- rem移动端适配方案
一. rem vs em 单位 定义 特点 rem font size of the root element 以根元素字体大小为基准 em font size of the element 以父元素 ...
- 移动端适配之REM
随着手机等移动设备的普及,移动端带来的流量已经不可忽视,一个网站不只是只有pc的页面就足够了,移动端的适配已经势在必行.但是移动设备种类繁多,屏幕尺寸也千奇百怪,能不能找到一种方式可以适配所有的手机屏 ...
- rem简单实现移动端适配
rem:移动web开发 默认字体大小是16px 在<html>中设置字体大小 与em的区别: em是在父级设置字体大小受影响 移动端适配 首先获取屏幕的宽度 计算当前屏幕宽度和640的比例 ...
- 移动端适配(rem & viewport)--移动端开发整理笔记(四)
移动端适配 通过rem适配 em: 根据元素自身的字体大小来计算自己的尺寸 rem: (root em) 根据根节点(html)的字体大小来计算自己的尺寸 我们知道,在不同的手机设备,分辨率大小是 ...
- 移动端适配 后篇(rem+vm)
涉及到的一些名词, 详细解释可参考 移动端适配前篇--移动端适配 rem 名词解释 [英寸Inch]英寸表示屏幕斜对角线的长度 [像素Pixel]像素是图像的基本采样单位,它不是一个确定的物理量,因为 ...
- 移动端适配 rem
前置知识: 物理像素(physical pixel,device pixel) 物理像素(设备像素),显示设备中一个最微小的物理部件.每个像素可以根据操作系统设置自己的颜色和亮度. 设备独立像素(de ...
随机推荐
- 记ambari启用kerberos添加kafka组件后yarn和hive出现Failure unspecified at GSS-API level (Mechanism level: Checksum failed)--403错误
出现警告的过程是: 1.搭建ambari集群成功后,添加了hdfs和zk组件,然后启用了kerberos: 2.kerberos启用完毕后添加hbase和yarn.MapReduce.hive都没有出 ...
- Charles 抓包工具的使用
抓包工具有很多,目前用过的有Charles, Fiddler, burpsuite.下面主要是Charles 的应用实例. 一. 用Charles抓包 1. PC 抓包 打开Charles, 确保“录 ...
- 处理函数和数组声明[条款17]---《C++必知必会》
指向函数的指针声明和指向数组的指针声明容易混淆,原因在于函数和数组修饰符的优先级比指针修饰符的优先级高,因此通常需要使用圆括号. int *f1( );//一个返回值为 int* 的函数 int ( ...
- ruby中的链式访问和方法嵌套
先看一道题,这道题是codewars上的一道题,我很早就看到了,但是不会写.等到又看到这道题的时候,我刚看完元编程那本书,觉得是可以搞定它的时候了.废话不多说,先看这道题,题目最开始是为JavaScr ...
- 基于TSUNG对MQTT进行压力测试-测试结果
一.TSUNG压测前概念温习 https://www.cnblogs.com/lingyejun/p/7898873.html 二.TSUNG在服务器上的安装步骤 Tsung压测时总连接数 = 本机可 ...
- AtCoder Regular Contest 080 C - 4-adjacent
地址:http://arc080.contest.atcoder.jp/tasks/arc080_a 题目: C - 4-adjacent Time limit : 2sec / Memory lim ...
- 关于bootstrap插件datepicker
<input readonly size="16" type="text" name="time" id="time&q ...
- $ MySQL-python数据库模块用法
本文主要介绍在python中如何使用MySQL数据库. 准备工作 安装mysql Linux (Ubuntu) apt-get install mysql-server 安装完成之后在命令行中输入:m ...
- [pixhawk笔记]6-uORB流程及关键函数解析
本文中将结合代码.文档及注释,给出uORB执行流程及关键函数的解析,由于uORB的机制实现较为复杂,所以本文主要学习如何使用uORB的接口来实现通信.回到上一篇笔记中的代码: #include < ...
- 20145327实验三 敏捷开发与XP实践
敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 程序缩进: 结对git的应用 PSP 步骤 耗时 百分比 需求分析 15m 12.5% 设计 30m 25% 代码实现 45m 37.5 ...