美文网首页
px、rpx、em、rem、%、vw/vh/vmin/vmax

px、rpx、em、rem、%、vw/vh/vmin/vmax

作者: CodeMT | 来源:发表于2023-01-03 14:41 被阅读0次

px

px是绝对长度固定大小的单位,像素的计算针对(电脑/手机)屏幕的,一个像素就是屏幕上的一个点,即屏幕分辨率的最小单位。

px 也常被称为 CSS 像素,在 PC 中,通常认为 1px 的真实长度是固定的。

常用于: CSS像素 = 物理像素/分辨率

计算方式

  • 假设PC 端:750 * 1134的视觉稿: 1 CSS像素 = 物理像素/分辨率 = 750 / 980 =0.76

  • 假设移动端(iphone6为例),分辨率为375 * 667:1 CSS像素 = 物理像素 /分辨率 = 750 / 375 = 2

所以 PC 端,一个CSS像素可以用0.76个物理像素来表示,而iphone6中 一个CSS像素表示了2个物理像素。此外不同的移动设备分辨率不同,也就是1个CSS像素可以表示的物理像素是不同的

注意:当浏览器页面缩放时,px 并不能跟随变大


rpx

rpx是微信小程序独有的、解决屏幕自适应的尺寸单位
可以根据屏幕宽度进行自适应,不论大小屏幕,规定屏幕宽为 750rpx
通过 rpx 设置元素和字体的大小,小程序在不同尺寸的屏幕下,可以实现自动适配,rpx是px的两倍,1px = 2rpx


em

相对长度单位,em 是相对于当前元素的父元素的 font-size 进行计算,如果当前元素未设置则相对于浏览器的默认字体尺寸。

<div class="a">A
  <div class="b">B
    <div class="c">C</div>
  </div>
</div>

<style>
  .a{ font-size:16px;}
  .b{ font-size:2em;} /* 相当于32px */
  .c{ font-size:1em;} /* 相当于32px */
</style>


rem

相对长度单位,CSS3 新增的一个相对单位,rem 是相对于根元素(html)的 font-size 进行计算,rem 不仅可设置字体大小,也可以设置元素宽高属性。

<div class="a">A
  <div class="b">B
    <div class="c">C</div>
  </div>
</div>
        
<style>
  html{ font-size:16px;}
  .a{ font-size:3rem;} /* 相当于48px */
  .b{ font-size:2rem;} /* 相当于32px */
  .c{ font-size:1rem;} /* 相当于16px */
</style>

百分比%

通常认为子元素的百分比完全相对于直接父元素:

<div class="a">
  <div class="b"></div>
</div>
<style>
  .a{ width:200px; height:100px; background-color: aqua; } 
  .b{ width:50%; height:50%; background-color: blueviolet; }
</style>

需要注意的是,如果设置了top、margin、padding等:

  • 子元素的 top 和 bottom 如果设置百分比,则相对于直接非 static 定位(默认定位)的父元素的高度
  • 子元素的 left 和 right 如果设置百分比,则相对于直接非 static 定位(默认定位的)父元素的宽度
  • 子元素的 padding/margin 如果设置百分比,不论是垂直方向或者是水平方向,都相对于直接父亲元素的 padding/margin ,而与父元素的 height 无关。

vw/vh/vmin/vmax

vw、vh、vmin、vmax 是一种视窗单位,也是相对单位。它相对的不是父节点或者页面的根节点。而是由视窗(Viewport)大小来决定的,单位 1,代表类似于 1%。

视窗(Viewport)是你的浏览器实际显示内容的区域—,换句话说是你的不包括工具栏和按钮的网页浏览器。

描述

  • vw:视窗宽度的百分比(1vw 代表视窗的宽度为 1%)
  • vh:视窗高度的百分比
  • vmin:当前 vw 和 vh 中较小的一个值
  • vmax:当前 vw 和 vh 中较大的一个值

vmin、vmax 用处、区别

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

移动端推荐使用(ios8、安卓4.4及以上才完全支持),比rem

总结

  • PC端:推荐使用px
  • 移动端(H5):vw/vh跟rem都可以,推荐前者,至于原因可自行了解
  • 微信端:推荐使用rpx

相关文章

网友评论

      本文标题:px、rpx、em、rem、%、vw/vh/vmin/vmax

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