深入理解并熟练使用 Utility Classes(原子化工具类) 是从“写 CSS 的开发者”转型为“高效 Vuetify 开发者”的关键。这套系统的逻辑与 Tailwind CSS 非常相似,旨在通过直接在 HTML 标签上添加类名来完成 90% 的样式工作。
以下是 Vuetify 工具类的核心体系详解:
1. 间距系统 (Spacing):最常用的魔法
Vuetify 的间距遵循公式:{属性}{方向}-{大小}。
- 属性 (Property):
m: margin (外边距)p: padding (内边距)- 方向 (Direction):
t: top |b: bottom |l: left |r: rights: start (左/起始) |e: end (右/结束) —— 推荐用这个,适配从右往左读的语言x: 左右方向 (left + right)y: 上下方向 (top + bottom)a: 全部方向 (all)- 大小 (Size):
0到16:默认是以 4px 为步长。例如ma-4等于16px的 margin。auto: 自动(常用mx-auto来居中块级元素)。n1到n16: 负值(只适用于 margin)。
场景示例:<div class="mt-5 pb-2 px-10">...</div>
表示:上外边距 20px,下内边距 8px,左右内边距 40px。
2. Flexbox 布局:告别 float
在 Vuetify 中,你几乎不需要在 CSS 里写 display: flex。
- 启用 Flex:
d-flex - 排列方向:
flex-column(纵向),flex-row(横向) - 主轴对齐 (Justify):
justify-center,justify-space-between,justify-end - 交叉轴对齐 (Align):
align-center,align-start,align-end - 元素缩放:
flex-grow-1(占据剩余空间),flex-shrink-0(不压缩) - 间隙 (Gap):
ga-2,ga-4(在 Flex 容器上直接控制子元素间距,非常实用)
场景示例: 制作一个两端对齐的导航栏<div class="d-flex justify-space-between align-center ga-4"> ... </div>
3. 文本与排版 (Typography)
不需要为每个标题定义 font-size,直接引用 Material Design 规范:
- 大小:
text-h1到text-h6,text-subtitle-1,text-body-2,text-caption。 - 粗细:
font-weight-thin,font-weight-bold,font-weight-black。 - 对齐:
text-center,text-right,text-start。 - 转换:
text-uppercase,text-capitalize。 - 截断:
text-truncate(超出部分显示省略号,神技)。
4. 颜色与背景 (Colors)
Vuetify 允许你直接通过类名调用主题色:
- 文字颜色:
text-primary,text-secondary,text-red-lighten-2,text-white。 - 背景颜色:
bg-primary,bg-surface,bg-grey-darken-4。
5. 响应式前缀:一套代码适配所有设备
这是最强大的地方。你可以根据屏幕尺寸(xs, sm, md, lg, xl)来改变样式。
格式:{类名}-{断点}-{值}(注意:部分工具类略有不同,如 d-{breakpoint}-{value})。
- 隐藏/显示:
d-none: 默认隐藏。d-md-flex: 在中等及以上屏幕显示为 flex。- 文本对齐:
text-center text-md-left: 手机上居中,电脑上靠左。
6. 高级修饰:阴影、圆角与边框
- 阴影 (Elevation):
elevation-0(扁平) 到elevation-24(悬浮感极强)。通常卡片用elevation-2就很美观。 - 圆角 (Rounded):
rounded-0,rounded-sm,rounded-lg,rounded-circle,rounded-pill。 - 边框 (Border):
border,border-top,border-opacity-25。
总结:为什么这样调样式“最方便”?
| 传统方式 | Vuetify Utility Classes 方式 |
|---|---|
给元素起类名 .my-container | 直接写 class="pa-4 d-flex" |
在 <style> 里写 margin-top: 16px | 直接写 mt-4 |
维护臃肿的 .scss 文件 | 样式随组件走,删组件时样式自动消失 |
需要查浏览器调试器看 px | 遵循 4px 步长,视觉节奏天然统一 |
评论 (0)