px, em, rem的区别:

px:绝对字体大小

em:基于一个基数来计算出相对字体大小。(移动端用的少)

rem:基于根节点(html)的字体大小来计算。

vw:可视区宽度单位。1vw等于可视区宽度的百分之一。

em

跟字体大小有关

#container{

font-size: 20px; /*1em = 20px*/

width: 5em; /* width = 20 * 5px*/

height: 5em; /* height = 20 * 5px*/

}

#box{

width: 20em; /* width = 20 * 20px*/

height: 20em; /* height = 20 * 20px*/

}

l浏览器默认字体是16px,这里父级字体大小是20px,所以#box里的1em = 20px;即#box是一个长宽均为400px的正方形

vw

vw单位和百分比很相似,不同的是vw的值对所有的元素都一样,与他们父元素或父元素的宽度无关

以414宽度的屏幕为例

做一个200 * 200的盒子

html {

font-size: 4vm; /* 4 * 4.14 = 16.56*/

}

#box{

width: 12.077294685990339rem; /* 200 / 16.56 = 12.077294685990339*/

height: 12.077294685990339rem;

}

rem

rem 的字体大小直接与html的字体大小有关。默认是16px = 1rem;

我们可以给html设置10px的字体大小

html {

font-size: 10px /*即: 10px = 1rem*/

}

大多数浏览器(不包括ie8以下)都支持rem单位,如果想都支持,可以

html{

font-size: 10px /* 或者 font-size: 62.5%*/ /* 10/16 = 62.5%*/

}

p{ font-size:15px; font-size:1.5rem}

可是这样在实际开发中,换算起来非常麻烦,所以,我们对此进行了修改,根据手机屏幕的大小,做了自适应。

首先,我们在html的head里边设置html的font-size.

html{

font-size: 100px !important;

}

然后根据设计图的尺寸和手机屏幕的尺寸进行换算。

// designWidth: 设计稿的实际宽度值

// maxWidth: 制作稿的最大宽度值

;(function(designWidth, maxWidth){

var doc = document,

win = window,

docEl = doc.documentElement,

remStyle = doc.createElement("style"),

tid;

function refreshRem() {

var width = docEl.getBoundingClientRect().width;

maxWidth = maxWidth || 540;

width > maxWidth && (width = maxWidth);

var rem = width * 100 / designWidth;

remStyle.innerHTML = 'html{font-size:' + rem + 'px}';

}

if (docEl.firstElementChild) {

docEl.firstElementChild.appendChild(remStyle);

} else {

var wrap = doc.createElement("div");

wrap.appendChild(remStyle);

doc.write(wrap.innerHTML);

wrap = null;

}

// 要等viewport设置好后才能执行refreshRem,不然会执行2次

refreshRem();

win.addEventListener("resize", function() {

clearTimeout(tid); // 防止执行2次

tid = setTimeout(refreshRem, 300)

},false)

win.addEventListener("pageshow", function(e){

if(e.persisted) {

clearTimeout(tid)

tid = setTimeout(refreshRem, 300)

}

}, false)

if (doc.readyState === "complete"){

doc.body.style.fontSize = "16px"

} else {

doc.addEventListener("DOMContentLoaded",function(e){

doc.body.style.fontSize = "16px"

}, false)

}

})(750, 750)

html移动端怎么做城市选择,移动端页面单位的选择(px, em, rem, vw)相关推荐

  1. px,em,rem,vw单位在网页和移动端的应用

    px: 是网页设计中最常用的单位,然而1px到底是多大长,恐怕没有人能回答上来 它用来表示屏幕设备物理上能显示的最小的一个点,这个点不是固定宽度的,不同设备上点的长度.比例有可能会不同. 假设:你现在 ...

  2. 移动端页面单位的选择(px em rem)

    移动端页面单位的选择(px em rem) 绝对单位:  px 相对单位:  rem  em em具有继承性  继承自直接父类  所以说在移动端很少用 浏览器默认的字体大小 16px  那么 1em= ...

  3. html开发的移动端怎么做压力测试,移动端压力测试

    移动端压力测试 移动端压力测试 一.monkey APP性能测试 (adb shell monkey 1000 adb logcat | gerp START获取包名和activity名 adb sh ...

  4. 移动端字体单位该使用px还是rem?

    对于只需要适配少部分手机设备,分辨率对页面影响不大的,使用px即可, 对于需要适配各种移动设备,使用rem,例如只需要适配iPhone和iPad等分辨率差别比较挺大的设备. rem配置参考,适合视觉稿 ...

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

    首先设置meta属性,如下代码: 使用如下代码就能实现移动端的适配: html { font-size: -webkit-calc(13.33333333vw); font-size: calc(13 ...

  6. 端渲染 or 流渲染?开发架构该如何选择?

    无论是端渲染架构还是流渲染架构,本质上都是数字孪生云渲染的实现方式. 当然,对于刚刚上线的 "图观™数字孪生可视化引擎",很多开发者伙伴还不是很了解该如何选择自己适用的开发架构,所 ...

  7. 聊聊WebRTC网关服务器1:如何选择服务端端口方案?

    <聊聊WebRTC网关服务器>系列文章系由WebRTCon2018中网易云信音视频技术专家的分享内容<从零开始构建音视频网关服务器>整理而成,该系列文章将和大家分享网易NRTC ...

  8. element做树形下拉_点睛时刻:移动端需要做SEO优化吗?移动端该怎么做SEO优化?

    随着移动互联网的快速发展,用户从PC端向移动端迁移的大趋势更加明显,但这也使得移动手机网站的seo优化工作还处于探索阶段,很多SEO和站长也都有了一些疑问,移动端需要做SEO优化吗?移动端该怎么做SE ...

  9. 腾讯数据科学家手把手教你做用户行为分析(案例:出行选择)

    来源:大数据DT本文约6500字,建议阅读10分钟 本文将结合示例,讲解选择行为的经济学理论和计量分析模型,详细介绍用户选择行为的分析方法论. [ 导读 ]生活中的选择行为无处不在,数据分析师面对的商 ...

最新文章

  1. 怎样学会单片机?先学什么,怎么入门?
  2. 《嵌入式 Linux应用程序开发标准教程(第2版)》——第1章 Linux快速入门 1.1 嵌入式Linux基础...
  3. 神州数码使用telnet方式管理交换机
  4. 【PAT (Advanced Level) Practice】1113 Integer Set Partition (25 分)
  5. ios 带scrollView的控制器,双击“状态栏”,返回scrollView的顶部
  6. Java上机操作练习题-助力期末
  7. ajax请求 禁用缓存,jQuery ajax缓存禁用无法正常工作?
  8. Nginx多种负载均衡策略搭建
  9. 人生133个规则,能领悟多少算多少!!!看自己的造化!!!
  10. mysql如何植入到oracle_分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节...
  11. pythonspiit函数_Python:“str”对象不可调用
  12. Bokeh 布局图像和工具
  13. 自媒体各大平台收益对比_各大自媒体平台的收益情况汇总
  14. python︱imagehash中的四种图像哈希方式(phash/ahash/dhash/小波hash)
  15. project euler 开坑
  16. 2017第八届(C/C++)B组蓝桥国赛题
  17. 丢失模式不联网有用吗_2020互联网推广新模式,商家还不知道就out了
  18. php 获取手机信息
  19. PC是夕阳行业?你们图样图森破
  20. 【攻略】淘宝前端智勇大闯关-第一季

热门文章

  1. Hadoop Install
  2. 用备份进行Active Directory的灾难重建:Active Directory系列之三
  3. c/s 自动升级(WebService)
  4. C#中float怎样保留两位小数?
  5. 删除rabbitmq的队列和队列中的数据
  6. mongodb远程连接配置(亲测)
  7. Geography爱好者 QGIS WGS84转其它坐标系并计算坐标
  8. TCP/IP协议详解---概述
  9. nginx 如何实现读写限流的方法
  10. linux c++ 调用matlab,ubuntu系统下C++调用matlab程序的方法详解