移动端适配

  • 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实现移动端适配的更多相关文章

  1. JS+rem,移动端适配

    window.onresize = function () { setHtmlFz(); } setHtmlFz(); function setHtmlFz() { // 基础值 var baseVa ...

  2. 小tips:使用rem+vw实现简单的移动端适配

    首先设置meta属性,如下代码: <meta name="viewport" content="width=device-width, initial-scale= ...

  3. 移动端适配单位rem

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

  4. rem移动端适配方案

    一. rem vs em 单位 定义 特点 rem font size of the root element 以根元素字体大小为基准 em font size of the element 以父元素 ...

  5. 移动端适配之REM

    随着手机等移动设备的普及,移动端带来的流量已经不可忽视,一个网站不只是只有pc的页面就足够了,移动端的适配已经势在必行.但是移动设备种类繁多,屏幕尺寸也千奇百怪,能不能找到一种方式可以适配所有的手机屏 ...

  6. rem简单实现移动端适配

    rem:移动web开发 默认字体大小是16px 在<html>中设置字体大小 与em的区别: em是在父级设置字体大小受影响 移动端适配 首先获取屏幕的宽度 计算当前屏幕宽度和640的比例 ...

  7. 移动端适配(rem & viewport)--移动端开发整理笔记(四)

    移动端适配 通过rem适配 em: 根据元素自身的字体大小来计算自己的尺寸 rem: (root em) 根据根节点(html)的字体大小来计算自己的尺寸   我们知道,在不同的手机设备,分辨率大小是 ...

  8. 移动端适配 后篇(rem+vm)

    涉及到的一些名词, 详细解释可参考 移动端适配前篇--移动端适配 rem 名词解释 [英寸Inch]英寸表示屏幕斜对角线的长度 [像素Pixel]像素是图像的基本采样单位,它不是一个确定的物理量,因为 ...

  9. 移动端适配 rem

    前置知识: 物理像素(physical pixel,device pixel) 物理像素(设备像素),显示设备中一个最微小的物理部件.每个像素可以根据操作系统设置自己的颜色和亮度. 设备独立像素(de ...

随机推荐

  1. Struts2 iterator标签实现嵌套循环

    问题:有一个List<List<Object>>  list用struts2在页面显示使用<s:iterator value=”list” var=”list1″> ...

  2. HDU1087:Super Jumping! Jumping! Jumping!(简单dp)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1087 水题,可是我却因为dp数组的初始化造成了多遍wa,这题就是求上升序列的最大和. 转移方程: 首先要对 ...

  3. 使用tensorflow 构建rnn网络

    使用tensorflow实现了简单的rnn网络用来学习加法运算. tensorflow 版本:1.1 import tensorflow as tf from tensorflow.contrib i ...

  4. TraClus java版实现

           前一阵子我们部门接到了业务那边的一个需求.想通过用户的wifi数据计算出商场内用户最喜爱走的线路.其实说白了就是用户轨迹聚类.根据业务的需求,我们最终采用了traClus聚类算法.tra ...

  5. debian flam3 依赖文件

    https://packages.debian.org/stable/graphics/flam3     package names   descriptions   source package ...

  6. Springboot 日志管理配置logback-spring.xml

    几种常见的日志 Log4j:是最早的日志框架,是apach旗下的,可以单独使用,也可配合日志框架JCL使用: Log4j2:apach旗下的关于log4j的升级版: Logback:是基于slf4j接 ...

  7. 【Android】WebView读取本地图片

    背景 咱的博客园APP,是通过一个WebView来展示新闻的详情的.新闻必然是图文并茂的,无论是支持离线缓存还是加速新闻的打开速度, 都需要咱们打通本地存储与WebView之间的桥梁. 思路 1:首先 ...

  8. Java并发编程:Lock(转)

    本文转自:http://www.cnblogs.com/dolphin0520/p/3923167.html Java并发编程:Lock 在上一篇文章中我们讲到了如何使用关键字synchronized ...

  9. [转]手把手教你搭建Hive Web环境

    了解Hive的都知道Hive有三种使用方式——CLI命令行,HWI(hie web interface)浏览器 以及 Thrift客户端连接方式. 为了体验下HWI模式,特意查询了多方的资料,都没有一 ...

  10. [Deep Learning]任意层cnn的matlab版本实现

    之前实现了一层的卷积神经网络,又实现了两层的卷积神经网络,接下来把cnn扩展到任意层就不难了. 这难道就是传说中的“道生一,一生二,二生三,三生万物”么?=.= 代码还是在github上. 比较有趣的 ...