二、基于变量的复杂布局控制
在 Grid 和 Flexbox 布局中,CSS 变量可以极大地减少重复代码,让布局更具灵活性。
1. 动态网格列数
.grid-container {
display: grid;
/* 默认列数为 1,可以通过 JS 或媒体查询修改 */
--columns: 1;
grid-template-columns: repeat(var(--columns), 1fr);
gap: 1rem;
}
@media (min-width: 768px) {
.grid-container { --columns: 3; }
}
---
## 三、响应式计算与 calc() 的结合
CSS 变量最惊艳的用法是与 `calc()` 配合,实现极致的响应式体验。
### 1. 基于视口的动态字体大小
不再只是固定的 `rem`,我们可以根据视口宽度动态调整字体大小。
```css
:root {
--base-font-size: 1rem;
/* 视口越大,字体越大 */
--fluid-font-size: calc(var(--base-font-size) + 1vw);
}
body {
font-size: var(--fluid-font-size);
}
2. 动画延迟与序列化控制
在实现复杂的列表动画时,CSS 变量可以帮我们精准控制每个元素的动画延迟。
.list-item {
/* 使用 --index 变量来计算延迟 */
animation-delay: calc(var(--index) * 100ms);
animation-name: slideIn;
animation-duration: 0.5s;
}