页面布局单位计算 一般有两大类:绝对长度单位和相对长度单位

  绝对长度单位:

    • px 像素:是显示屏上显示的每一个小点,为显示的最小单位
    • in 英寸,1in = 96px
    • cm 厘米,1cm = 37.8px
    • mm 毫米,1mm = 3.78px
    • pt 磅,1pt = 1/72 英寸

  推荐使用  px(像素)

  相对长度单位:

    • em 相对于当前元素的字体大小(font-size) ,当前元素未设置字体大小依赖其父元素字体大小一级级向上查找 1em= 1 × 当前元素字体大小;
    • rem   相对于根元素的字体大小(font-size),计算公式 1rem =1 ×  根元素字体大小;
    • %     目标元素宽度/父级元素宽度=百分比宽度 ;
    • ex & ch  相对于元素字符字体宽高
      • ex  取自字符x的高度
      • ch    基于'0'这个字符字体的宽度计算
    • vw & vh   根据 视口(浏览器可视化的区域) 的宽高计算 
      • vw  当前视窗宽度的 1%
      • vh   当前视窗高度的 1%
    • vmin & vmax 当前vwvh中较小或者较大的值

目前 IE8一下不支持 rem,IE9,10部分不支持

如果这个属性根据它的font-size进行测量,则使用em

其他的视情况使用对应单位.

rem 几种方法: 

js计算

    <script>
/*让文字和标签的大小随着屏幕的尺寸变化 等比缩放*/
var html = document.getElementsByTagName('html')[0]; /*取到屏幕的宽度*/
var width = window.innerWidth;
var fontSize = 100/640*width;
html.style.fontSize = fontSize +'px';
window.onresize = function(){
var html = document.getElementsByTagName('html')[0]; var width = window.innerWidth; var fontSize = 100/640 * width;
/*设置fontSize*/
html.style.fontSize = fontSize +'px';
}
</script>

使用媒体查询:

@media (max-width:768px){
html {
    font-size:16px;
  }
}

rem适配方案的更多相关文章

  1. 谈谈我的移动端rem适配方案

    最近有点怀疑人生,毕竟一个人写前端,有时候会怀疑自己理解的一些东西包括用法有没有符合标准.趁着这阵子闲下来,翻了翻别人的rem适配博客,发现有点绕口,怪自己是个强迫症,啥都要自己去试试结果并从中理解, ...

  2. em与rem之间的区别以及移动设备中的rem适配方案

    em与rem之间的区别: 共同点: 它们都是像素单位 它们都是相对单位 不同点: em大小是基于父元素的字体大小 rem大小是基于根元素(html)的字体的大小 实例: <!DOCTYPE ht ...

  3. H5 端 rem 适配方案与 viewport 适配

    H5 端 rem 适配方案与 viewport 适配 rem rem 是 CSS3 新增的一个相对单位(root em,根 em) 只根据当前页面 HTML 页面的 font-size 设置,如果根目 ...

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

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

  5. vue中使用第三方UI库的移动端rem适配方案

    需求:使用vue-cli脚手架搭建项目,并且使用第三方的UI库(比如vant,mint ui)的时候,因为第三方库用的都是用px单位,无法使用rem适配不同设备的屏幕. 解决办法:使用px2rem-l ...

  6. 淘宝rem适配方案

    /*px 转化换 rem ,转化是 10 .比如:你的设计图为750,那么就 750 / 75 = 10 rem.设计图中你量尺寸都要除 75 就是 rem值.再比如量的设计图按钮宽度 66px,那么 ...

  7. 移动web开发适配方案之Rem

    移动端为什么要做适配 移动端相对PC端来说大部分浏览器内核都是基于Webkit的,所以大部分都支持CSS3的最新语法.但是由于手机的屏幕尺寸和分辨率都不太一样(尤其是安卓),所以不得不对不同分辨率的手 ...

  8. 移动端高清适配方案(解决图片模糊问题、1px细线问题)

    本文介绍了移动端适配的3种方法,以及移动端图片模糊问题和1px细线问题的解决方法.当然了,在这之前先整理了与这些方法相关的知识:物理像素.设备独立像素.设备像素比和viewport. >> ...

  9. vue项目中使用了vw适配方案,引入第三方ui框架mint-ui时,适配问题解决

    问题分析: 一般第三方ui框架用的都是不同的适配方式,如果我们使用了vw适配,那么在使用mint-ui框架时,就会发现px单位会被转换成vw,从而导致样式变小的问题,如图 解决方案 网上看到了很多种解 ...

随机推荐

  1. BZOJ 2462 [BeiJing2011]矩阵模板 矩阵哈希

    昨天卡了一天常数...然后发现吧$unsigned\space long\space long$改成$unsigned$就可以过了$qwq$ 先把每一行的前缀哈希求出,然后再竖着把每个前缀哈希值哈希起 ...

  2. DB restore point and datagurad

    ######## 12.5.1 Flashing Back a Physical Standby Database to a Specific Point-in-Time The following ...

  3. .NET Core微服务 权限系统+工作流(二)工作流系统

    一.前言 接上一篇 .NET Core微服务 权限系统+工作流(一)权限系统 ,再来一发 工作流,我在接触这块开发的时候一直好奇它的实现方式,翻看各种工作流引擎代码,探究其实现方式,个人总结出来一个核 ...

  4. 利用Java程序将字符串进行排序与拼接

    1.初始生成字符串的代码程序: package com.map.test; import java.util.ArrayList; import java.util.Collections; impo ...

  5. 如何处理HTML标签属性

    在jQuery里我们可以通过.attr()的方法来实现对HTML标签属性(tag attribute)处理. 1. 获取标签属性的值 (演示) 语法:$('选定目标').attr('属性名') 例子如 ...

  6. css盒子模型 css3盒子相关样式

    1.内边距(内边距在content外,边框内) 内边距属性: padding          设置所有边距 padding-bottom     底边距 padding-left           ...

  7. Photoshop之切图

    基本(繁琐)操作: 切JPG图(即带背景的图): 1.         选切片工具(另外,切片选择工具能选择切片和删除切片),切 2.         存储为Web所用格式(快捷键Ctrl + Shi ...

  8. javascript浮点值运算舍入误差

    问题 在javascript中整数和浮点数都属于Number数据类型(简单数据类型中的一种),我们经常会发现在打印1.0这样的浮点数的结果是1而非1.0,这是由于保存浮点数的内存空间是保存整数值的两倍 ...

  9. 超链接显示网站 A,访问后进入网站 B

    #前端黑魔法# 出一个思考题:如何用最少的字符实现下图效果.即超链接显示网站 A,访问后进入网站 B. 当然这个是上古时代的黑魔法了,稍懂前端的都知道原理.所以这里只问最短的实现~ 一个简单的演示:( ...

  10. linux 命令——31 /etc/group文件(转)

    Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和用户组管理时相关的文件. linux /etc/group文件是有关于系统管理员对用 ...