# 相对单位

# em rem

em是相较于父元素,一般而言em不倾向于用在设置字体上(推荐用rem),其他属性(比如padding)可以考虑使用em。非字体大小使用em,其最终计算值是根据字体大小来的。

rem是相较于根节点(即html 也可以使用伪类选择器:root),适合设置字体大小。

# vw vh vmin vmax

  • vw 视口宽度的1/100
  • vh 视口高度的1/100
  • vmin 视口高度、宽度较小的一方的1/100
  • vmax 视口高度、宽度较大的一方的1/100

# CSS变量

:root{
    /* 名称必须以--开头 */
    --main-color:red;
}
.selector{
    color:var(--main-color);
}

在有css预编译器的情况下,静态的css变量其实用处不大。但是我们可以动态改变css变量。

.theme-1{
    --main-color:red;
}
.theme-2{
    --main-color:green;
}

这样可以比较容易实现主题色功能。