主题
CSS 单位
像素(
px):是页面布局的基础,一个像素表示终端(电脑、手机、平板等)屏幕所能显示的最小的区域,像素分为两种类型:CSS像素和物理像素:- CSS 像素:为 web 开发者提供,在CSS中使用的一个抽象单位;
- 物理像素:只与设备的硬件密度有关,任何设备的物理像素都是固定的。
百分比(
%):当浏览器的宽度或者高度发生变化时,通过百分比单位可以使得浏览器中的组件的宽和高随着浏览器的变化而变化,从而实现响应式的效果。一般认为子元素的百分比相对于直接父元素。em和rem:相对于 px 更具灵活性,它们都是相对长度单位,它们之间的区别:em相对于父元素,rem相对于根元素。em:文本相对长度单位。相对于当前对象内文本的字体尺寸。如果当前行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸(默认16px)。(相对父元素的字体大小倍数)。rem:rem是CSS3新增的一个相对单位,相对于根元素(html元素)的 font-size 的倍数。作用:利用rem可以实现简单的响应式布局,可以利用html元素中字体的大小与屏幕间的比值来设置font-size的值,以此实现当屏幕分辨率变化时让元素也随之变化。
vw和vh:是与视图窗口有关的单位,除了vw和vh外,还有vmin和vmax两个相关的单位。vw:相对于视窗的宽度,视窗宽度是100vw;vh:相对于视窗的高度,视窗高度是100vh;vmin:vw和vh中的较小值;vmax:vw和vh中的较大值;
尺寸计算函数
calc()
calc() 用于在 CSS 中组合不同单位或变量进行计算。运算符两侧需要保留空格。
css
.main {
width: calc(100% - 2rem);
min-height: calc(100vh - var(--header-height));
}clamp()
clamp(min, preferred, max) 会将首选值限制在最小值和最大值之间,适合响应式字号和容器宽度。
css
.container {
width: clamp(18rem, 90vw, 60rem);
}
h1 {
font-size: clamp(1.5rem, 3vw, 3rem);
}