关于css中的长度单位,我们用的最多就是px,因为他简单直接。但是当一套方案匹配不同终端时,px就会显得过于生硬,不容易变通。

  然而rem,em,vh,vw就可以有效的解决这一问题。让我们来看看这些东西是个啥?

  首先是rem,W3C官网描述是“font size of the root element”,即rem是相对于根元素。概念不好理解接咋们就直接直接看demo:

DOM结构如下:

CSS 代码如下:

效果如下:

  

      现在对于rem是否有了点认识,设置html的font-size大小后,就有了参照值,其他地方的px就可以替换成rem了,就像demo所展示的html的font-size大小为16px,div中的字体大写分别为1rem,1.5rem,2rem。换算成px就分别分 1* 16=16px,1.5*16=24px,2*16=32px。不仅仅是字体大小,html所有元素的宽高也可以写成rem为单位,同样是参照html的font-size的值。再扩展一下就是说所文档中所有的可以使用px表示的都可以替换成rem。

  那么这么做的意义又是什么呢?当你需要做相应式布局时,rem就能发挥其正真的威力。通过匹配不同的设配的屏幕大小,设置其html的font-size的值,然后就可以放心大胆的使用rem,其他的就可以交给浏览器处理了。

em,vh,vw原理大同小异。不同的是参考点不一样,em参考的父节点的font-size的大小,即当父节点的fong-size为12px,子节点设置宽度为10em,font-size为2em,则宽度换算成px是12*10=120px,字体大小为12*2=24px,若孙节点的高度设置10em,那么换算成px又是多少呢? 当然是父节点的fong-size值24px乘10em,结果为240px,所以em永远只关心上一级的font-size。那么问题来了,上一级没有设置font-size怎么办?不要慌,元素的font-size默认继承父节点的font-size值。这下是不是就对em了然于胸了。

  接下来是vh和vw。看着简写你可能看不出什么东西。我们展开看看 vh:viewport height,vw:viewport width 。viewport叫做可视区域。这下是不是就感觉明白了vh和vw。没错就是你想的那样,vh和vw分别参照可视区域的高度和宽度。

  所以这些单位都是相对的,只要知道参考点,那么就很简单了。目前我所做的项目中,都是统一使用的rem 做的适配,方便有效,谁用谁知道!

  作为一个新人,欢迎大家指导批评。

CSS 中的rem,em,vh,vw一次说清楚的更多相关文章

  1. css中px,em和rem的区别

    css中px,em和rem的区别 今天,突然间发现一个特别有意思的问题,就是无意间看到一个网站中的em并不是16px,下面展开了对于px和em以及rem的探究. 首先,px是绝对长度单位,是相对于显示 ...

  2. CSS中强大的EM

    (转)作者:dearjohn ,发布于2012-7-31 http://www.uml.org.cn/html/201207311.asp 使用CSS也好久了,但一直都是在使用“px”来设置Web元素 ...

  3. CSS中强大的EM(转)

    转自:https://www.w3cplus.com/css/px-to-em CSS中强大的EM 作者:大漠 日期:2011-10-27 点击:97370 em 长度单位 编辑推荐:3月31日前,点 ...

  4. css中单位px,em,rem和vh/vw的理解

    >px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的. em是相对长度单位.相对于当前对象内文本的字体尺寸.如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认 ...

  5. CSS各种度量单位----px、em、%、rem、vh/vw、vmin/vmax

    本文主要讲下CSS中各类度量单位的意思和区别. 开发中最常用到的css单位是px.em.%.随着css3的出现,带来了更多的度量单位,这些单位为响应式开发,带来很大的好处.各种单位的浏览器兼容性可以去 ...

  6. CSS中的 REM PX EM

    px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的 em是相对长度单位.相对于当前对象内文本的字体尺寸.如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸. ...

  7. CSS中px,em,rem,pt的区别及四者换算?

    本文章重要说明px,em,rem,pt的区别以及四者之间的换算. em单位有如下特点 1. em的值并不是固定的; 2. em会继承父级元素的字体大小. 我们在写CSS的时候如果要用em为单位,需要注 ...

  8. CSS中px和em属性的特点与区别

    详解px和em的特点和区别象素px是我们在定义CSS中经常用到的尺寸大小单位,而em在国外网站中经常被使用,px和em之间究竟有什么区别和特点呢?◆px像素(Pixel),相对长度单位.像素px是相对 ...

  9. 了解css中px、em、rem的区别并使用Flexible实现vue移动端的适配

    本人java菜鸟一名,若有错误,还请见谅. 1.px和em和rem的定义和区别 px:px像素,是相对单位,相对于屏幕的分辨率而言,也就是说,当屏幕的分辨率不同那么px相同,实际看到的大小也会不同. ...

随机推荐

  1. JavaScript一个猜数字游戏

    效果图: 代码: <body> <script type="text/javascript"> window.onload = newgame; //页面载 ...

  2. Express 学习笔记纯干货(Routing、Middleware、托管静态文件、view engine 等等)

    原始文章链接:http://www.lovebxm.com/2017/07/14/express-primer/ 1. Express 简介 Express 是基于 Node.js 平台,快速.开放. ...

  3. raft如何实现leadership transfer

    leadership transfer可以把raft group中的leader身份转给其中一个follower.这个功能可以用来做负载均衡,比如可以把leader放在性能更好的机器或者离客户端更近的 ...

  4. MetaWebBlogApi开发经验

    背景 花了一天的时间为某笔记软件开发了一款插件,能够发布笔记到博客园,本文就是记录开发时遇到的问题和解决方案,希望有大佬能开发出更好用的博客编辑器. 为什么要开发? 现在有很多开源的建站工具hexo, ...

  5. Java 数据类型在实际开发中应用二枚举

    在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的.在JDK1.5之前,人们用接口来描述这一种数据类型. 1. ...

  6. Docker 部署DropWizard

    FROM index.alauda.cn/alauda/ubuntu MAINTAINER hongxiao.shou "shouhongxiao@163.com" COPY jd ...

  7. ZooKeeper快速学习

    "一入Java深似海",过去自身对于分布式的接触,始终处于使用别人构建的框架的水平,最多就是在nginx配置一下第4层的负载均衡(最后有介绍).随着java使用深入,本文将重点理解 ...

  8. JavaScript中的函数:闭包,this,高阶函数

    一.函数基本理论 function compare(val1,val2){ return val1 - val2; }var result = compare(5,10); 1,函数的定义没什么意义, ...

  9. js实现日期显示的一些操作

    1.js获取当前日期(yyyy-mm-dd) 以下代码是获取到的当前日期: var myDate = new Date(); var year = myDate.getFullYear(); //获取 ...

  10. 利用pyinstaller将python脚本打包发布

    之前写了一个小工具,将excel配置表转换为json.xml.lua等配置文件.最近在学习egret,正好需要转换配置文件,刚好就用上了.然而当我想把工具拷到工作目录时,就发愁了.之前我为了方便扩展, ...