美文网首页
css3长度单位vw、vh、rem 详解

css3长度单位vw、vh、rem 详解

作者: alipy_258 | 来源:发表于2019-01-09 18:25 被阅读0次

vw、vh、vmin、vmax

这四个单位都是基于视口的。那么,什么是视口呢,我们来看一段代码:

<meta name="viewport" content="width=device-width,initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">

其中,浏览器利用 meta 标签里面的 width 来改变浏览器的视口大小,将 width 设置为设备的宽度 device-width。我们可以使用document.documentElement.clientWidth 获取浏览器的视口大小。

含义

vw: 视口宽度的百分比(1vw 等于视口宽度的 1%)
vh: 视口高度的百分比(1vh 等于视口高度的 1%)
vmin: 选取 vw 和 vh 中最小的那个
vmax: 选取 vw 和 vh 中最大的那个

vw、vh 是基于视口的,而不是父元素。1vw 等于1/100 的视口宽度,1vh 等于1/100 的视口高度,比如:
浏览器高度 950px,宽度为 1920px, 1vh = 950px/100 = 9.5 px,1vw = 1920px/100 =19.2 px

vw、vh、% 的区别

  1. % 是相对于父元素的大小设定的比率,vw vh 是视口大小决定的
  2. vw、vh 能直接获取高度,而 % 如果没有设置body的高度情况下,是无法获取可视区域的高度。

vmin、vmax 用处

做移动页面开发时,如果使用 vw、wh 设置字体大小(比如 5vw),在竖屏和横屏状态下显示的字体大小是不一样的。
由于 vmin 和 vmax 是当前较小的 vw 和 vh 和当前较大的 vw 和 vh。这里就可以用到 vmin 和 vmax。使得文字大小在横竖屏下保持一致。

vw、vh、rem 相比的优势

  1. 如果使用 rem ,我们页面的头部引入 js 来动态设置页面 html 的 font-size,一般情况下基于屏幕的宽度来计算:var rem = docEl.clientWidth / 10;docEl.style.fontSize = rem + 'px'
  2. css 这块,使用 less 或者 scss 来动态计算 dom 的实际 rem 值
@function px2rem($size) {
  $remSize: $size / 20;
  @return #{$remSize}rem;
}

因此会有问题:

  1. 依赖页面头部的js设置,虽说基本上不会阻塞页面渲染,但是放在头部始终要进行一次dom计算,不算优雅。
  2. 通常使用宽度来计算 html 的 font-size 时,对于那种很宽的手机或者是ipad,会导致适配的不准确

如果使用 vmin 可以规避上面的问题:

  1. 不依赖js执行。
  2. 选取宽高之中较小的值进行适配

rem em 的区别

  1. 两者都是相对单位
  2. rem 是相对于根元素(html)的字体大小
  3. em 是相对于其父元素的字体大小

对于一些固定的元素,我们不推荐使用 rem,而改为使用 px 去确保在同一屏幕上保持一致,比如字体 font-size,这个更趋向于阅读的实用性,不适合排版布局

这里给大家提供了一个px、em、rem单位的转换工具:http://pxtoem.com/

浏览器兼容性

桌面 pc:

  • Chrome:自 26 版起就完美支持(2013年2月)
  • Firefox:自 19 版起就完美支持(2013年1月)
  • Safari:自 6.1 版起就完美支持(2013年10月)
  • Opera:自 15 版起就完美支持(2013年7月)
  • IE:自 IE10 起(包括 Edge)到现在还只是部分支持(不支持 vmax,同时 vm 代替 vmin)

移动设备

  • Android:自 4.4 版起就完美支持(2013年12月)
  • iOS:自 iOS8 版起就完美支持(2014年9月)

相关文章

  • css3长度单位vw、vh、rem 详解

    vw、vh、vmin、vmax 这四个单位都是基于视口的。那么,什么是视口呢,我们来看一段代码: 其中,浏览器利用...

  • 常见单位梳理

    单位(px/em/rem、vw/vh/vmin/vmax) px px像素(Pixel)。相对长度单位。像素px是...

  • CSS新增单位

    CSS3 新增的单位:**vh、vw、vmin、vmax** * vw 和 vh 1、1vw 等于1/100的...

  • font-size的可用单位有哪些?

    font-size的长度单位汇总如下: 像素单位(px) em rem 百分比(%) 视窗单位(vw,vh,vmi...

  • 长度单位 em rem vw vh

    em 官方解释:CSS1 长度单位 em,相对于当前对象内文本的字体尺寸 我的解释:1em=父标签的font-si...

  • 纯 CSS 实现自适应正方形

    方案1:CSS3 vw单位 CSS3 中新增了一组相对于可视区域百分比的长度单位 vw, vh, vmin, vm...

  • css--px,em,rem、vw、vh

    px,em,rem、vw、vh1.px (pixel,像素):是一个虚拟长度单位,是计算机系统的数字化图像长度单位...

  • CSS使用img做背景并且内容等比缩放

    相关资料:css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况CSS 背景CSS...

  • 2019-06-27

    --- px、em、rem、vw、vh px:像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率...

  • css实现自适应正方形

    方法一:使用 CSS3 的 vw,vh 单位 用 vw 或 % 单位设置宽度,用 vw 单位设置相同高度即可; 用...

网友评论

      本文标题:css3长度单位vw、vh、rem 详解

      本文链接:https://www.haomeiwen.com/subject/pknghqtx.html