060. CSS 单位

1. 长度(length)单位

长度单位主要分为两种,相对和绝对。

  • 相对长度单位 基于其它元素的长度。例如 em 基于该元素的字号大小,vh 则与设备视口的高度有关。

  • 绝对长度单位 则是一个固定的物理长度。

1.1 ch 单位

相对单位,该单位代表 0 的宽度。即 1ch 就是 1 个 0 的宽度(非高度)。

也就是说 2ch 宽度的容器,只能装下两个 0。

<div class="ch-units">00000000</div>
.ch-units {
  width: 5ch;
  height: 5ch;
  font-size: 12px;
  background-color: yellow;
}

因为 ch 是相对宽度,并且是根据 0 的宽度变化而变化,所以改变 0 的字体大小,ch 的宽度也会发生变化。

如下图右侧是 12px 的字体大小,5ch 宽度是 36px

5ch-12px

如下图右侧是 14px 的字体大小,5ch 宽度是 42px

5ch-14px

ch 还有如下规则:

1ch = 1 个英文 = 1 个数字 2ch = 1 个中文

1.2 ex 单位

相对单位,该单位表示小写字母 "x" 的高度,即 1ex 就是 1 个 "x" 的高度。

通常来说,1ex ≈ 0.5em

<div class="ex-units">xxxxxxxx</div>
.ex-units {
  width: 5ex;
  height: 5ex;
  font-size: 12px;
  background-color: blue;
}

1.3 em 单位

相对单位,em 单位最多可以设置三位小数。

  • 元素的字体大小设置 em 是相对于父元素的字体大小,即父元素 16px,子元素的字体大小 2em = 2 * 16px = 32px

  • 元素的 width height padding mariginem 为单位,则是相对于该元素的 font-size,即如果元素的字体大小是 12px,则 width = 2em = 2 * 12px = 24px(元素如果未设置字体大小,则继承父元素字体大小)。

<div class="em-units">emmmmmmm</div>
.em-units {
  width: 5em;
  height: 5em;
  font-size: 2em;
  background-color: pink;
}
em-unit

如上所示,div 的字体大小计算结果是 32px,Chrome 浏览器默认字体大小是 16px,所以其父元素默认是 16px,所以该元素的字体大小 2em = 16px * 2 = 32px,然后宽高是以当前元素的字体大小计算的,前面得出当前元素的字体大小计算为 32px,所以宽高 5em 就是 32px * 5 = 160px

1.4 rem 单位

相对单位,1 rem 与等于根元素(<html>) font-size 的计算值。

<html> 节点的字体大小 font-size: 16px,则 1rem = 16px,以此类推。

1.5 vhvwvminvmax 视口单位(Viewport units)

相对单位。

在桌面端,视口指的是浏览器的可视区域;在移动端,指的视布局视口(Layout Viewport)。

  • vw : 1vw 等于视口宽度的 1%,也即视口的宽度可以用 100vw 表示

  • vh : 1vh 等于视口高度的 1%,,也即视口的高度可以用 100vh 表示

  • vmin : 选取 vw 和 vh 中最小的那个

  • vmax : 选取 vw 和 vh 中最大的那个

假设浏览器的视口尺寸宽度为 1080px,那么 1vw = 1080px * 1% = 108px。

1.6 px 单位

绝对单位。一像素(pixel)。对于普通的屏幕,通常是一个设备像素(点)。

对于打印机和高分辨率屏幕,一个 CSS 像素往往占多个设备像素。

一般来说,每英寸的像素的数量保持在 96 左右, 1px = 1in 的 96 分之一。

1.7 cm mm in 单位

绝对单位。

一厘米。 1cm = 96px / 2.54

一毫米。 1mm = 1/10 * 1cm

一英寸。 1in = 2.54cm = 96px

2. 角度(angle)单位

角度单位主要在 <gradient>transform 的某些方法等场景中有所应用。

角度单位可以使用 + 或 - 开头。正数表示顺时针的角,负数表示逆时针的角。对于静态的角,同样的角度可以使用任意等效的值表示。

比如 90deg 等于 -270deg,1turn 等于 4turn。

2.1 deg 单位

度。一个完整的圆是 360deg。例:0deg90deg14.23deg

2.2 grad 单位

百分度。一个完整的圆是 400grad。例:0grad100grad38.8grad

2.3 rad 单位

弧度。一个完整的圆是 弧度,约等于 6.2832rad。1rad 是 180/π 度。例:0rad1.0708rad6.2832rad

2.4 turn 单位

圈数。一个完整的圆是 1turn。例:0turn0.25turn1.2turn

换算如下:

零角:0 = 0deg = 0grad = 0turn = 0rad

直角:90deg = 100grad = 0.25turn ≈ 1.5708rad

直角(逆时针):-90deg = -100grad = -0.25turn ≈ -1.5708rad

平角:180deg = 200grad = 0.5turn ≈ 3.1416rad

3. 时间(time)单位

主要在 animationtransition 及相关属性中使用。

3.1 s 单位

以秒为单位的时间。 例: 0s, 1.5s, -60s。

3.2 ms 单位

以毫秒为单位的时间。例: 0ms, 150.25ms, -60000ms。

1s = 1000ms

4. 分辨率(resolution)单位

用于描述媒体查询中的分辨率的 CSS 数据类型表示输出设备的像素密度。 在屏幕上,单位与 CSS 英寸,厘米或像素有关,而与物理值无关。

4.1 dpi 单位

表示每英寸的点数。屏幕通常每英寸包含 72 或 96 个点,但打印文档的 dpi 通常要大得多。 1 英寸是 2.54 厘米,1dpi ≈ 0.39dpcm

4.2 dpcm 单位

每厘米上的点数。1 英寸是 2.54 厘米, 1dpcm ≈ 2.54dpi.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在本章中,我们就来关注下所有CSS里面的值和单位,这是基础中的基础。通过学习,那么你学习后面的内容将会更加得心应手...
    秋名山车神12138阅读 5,632评论 0 0
  • 单元名称相当于cm公分1厘米= 96px / 2.54mm毫米1mm = 1厘米的1/10Q四分之一毫米1Q = ...
    WhiteStruggle阅读 3,831评论 0 1
  • 一、长度单位 1.1 绝对单位 absolute units 1.1.1 px pixel 像素是一个绝对单位,这...
    loster阅读 6,521评论 0 0
  • 本文主要讲述页面布局样式方面涉及的知识点,更全面的对CSS相应的技术进行归类、整理、说明,没有特别详细的技术要点说...
    Joel_zh阅读 4,569评论 0 1
  • 论CSS常用单位的前世今生 目录: 一、---------------------------浅析CSS的组成 二...
    Marting424阅读 7,883评论 0 3