CSS 相对间距单位指南
相对于文档的空间:root
使用:rem
除非您更改它,否则默认rem
值具有16px
响应缩放级别的变化的优势。
为什么以及如何使用rem
rem
无论嵌套多深都不会改变,因此对于元素之间/周围的一致间距,它是一个可靠的选择。
它也是字体大小的首选测量方法。
相对于视口的空间
用途:视口单元
视口是浏览器窗口或设备屏幕尺寸的边界。
可用的视口单位
vh
:视口高度 - 基于视口的高度vw
:视口宽度 - 基于视口的宽度vmin
vh
:视口最小值 - 返回或的较小值vw
,并进行响应式更新vmax
vh
: 视口最大值 - 返回或的较大值vw
,并进行响应式更新
视口单元非常适合:
- 将元素保持在可见区域范围内
- 确保
<body>
、<main>
或启动画面标题的最小高度与视口一样高(min-height: 100vh
) - 创建比例合适、响应迅速的元素
- 结合
calc
影响多个元素的可见性 - 创建全高、全宽的幻灯片(特别是与 结合使用
scroll-snap
)
此示例是一个几乎全高的标题,用于calc
确保留出一些空间来提示其他内容:
相对于元素的空间
使用:em
em
将与元素或其最近祖先元素的font-size
规则保持比例。一个em
等于 font-size,因此默认情况下,它等于1rem
default 16px
。
与 相比rem
,em
可能会从父级复合到子级,从而导致不良后果。请考虑以下列表示例,其中字体大小设置在 中,em
并且复合嵌套列表:
何时以及如何使用em
- 排版元素之间
- 文本组件上的填充,例如按钮或输入字段
- 对于
letter-spacing
,通常为微值,例如0.03
,也可以定义为负值
在以下 codepen 中,您可以更改$font-size
变量以查看它如何影响label
andbutton
作为一个单元:
相对于内容的间距
使用:ch
,em
虽然em
根据内容调整间距可能很合适,但单位宽度却不太受重视ch
。该单位宽度等于字体系列中零个字符的宽度。
何时以及如何使用ch
用于根据最佳行长(50-80 个字符,具体取决于所用资源)设置宽度。首先80ch
根据所使用的字体进行优化,并注意大多数字体较窄,0
因此宽度ch
可能需要大于所需的行长。
这非常适合:
article
内容- 设置
flex-basis
值,特别是对于flexbox albatross技术 minmax
设置网格列的“最大”部分- 提供
min-width
按钮或导航项