布局
Responsive 响应式
移动优先:小屏打底,sm: md: lg: 从该断点往上增强。断点 576 / 768 / 992 px。
移动优先 · 一句话
无前缀的类 = 全断点(含手机);带前缀的类 = 仅 ≥ 该断点 才生效。先写手机布局,再用前缀加大屏样式——不是桌面优先。
栅格列宽两种写法见下文;分栏示例见 弹性栅格 · 移动优先。
常见写法对照
断点 576 / 768 / 992 / 1200 px;移动优先(min-width 媒体查询)。
| 场景 | 旧写法(row/col 系) | PivCSS |
|---|---|---|
| 显示切换 | d-none d-md-flex | pvs-hidden md:pvs-flex |
| 渐进列宽 | col-12 col-md-6 col-lg-4 | pvs-col-full md:pvs-col-6 lg:pvs-col-4 |
| 内置 lg 折叠 | col-lg-8 | pvs-col-lg-8(<992px 满宽) |
| 内置 xl 折叠 | col-xl-4 | pvs-col-xl-4(<1200px 满宽) |
栅格列宽 · 两种写法
| 写法 | 行为 | 适用 |
|---|---|---|
pvs-col-lg-8 | <992px 满宽堆叠 · ≥992px 跨 8 轨 | 主侧栏、省事 |
pvs-col-xl-4 | <1200px 满宽堆叠 · ≥1200px 跨 4 轨 | 大屏四列、宽屏主侧栏 |
pvs-col-full md:pvs-col-6 lg:pvs-col-4 | 手机满宽 → md 两列 → lg 三列 | 卡片流、精细控制 |
pvs-col-full md:pvs-col-6 xl:pvs-col-3 | 手机满宽 → md 两列 → xl 四列 | 大屏卡片墙 |
pvs-col-4(仅裸类) | 各断点都跨 4 轨,小屏不会自动满宽 | 仅桌面 demo;生产慎用 |
前缀规则
类名写成 md:pvs-flex = 仅 ≥768px 时应用 pvs-flex;默认(无前缀)= 全断点。
| 类名 | 说明 |
|---|---|
(无前缀) | 全断点 |
sm: | ≥ 576px |
md: | ≥ 768px |
lg: | ≥ 992px |
xl: | ≥ 1200px |
栅格列数(渐进示例)
收窄窗口:满宽 → md 两列 → lg 三列。
A
B
C
<div class="pvs-grid" style="--pvs-grid-columns:12;--pvs-gap:0.75rem">
<div class="pvs-col-full md:pvs-col-6 lg:pvs-col-4 pvs-p-3 pvs-border pvs-bg-surface-muted">A</div>
<div class="pvs-col-full md:pvs-col-6 lg:pvs-col-4 pvs-p-3 pvs-border pvs-bg-surface-muted">B</div>
<div class="pvs-col-full md:pvs-col-6 lg:pvs-col-4 pvs-p-3 pvs-border">C</div>
</div>xl 断点(≥1200px)
v1.1 起支持 xl:pvs-*,对齐大屏断点档(1200px+)。
满宽 → md:6 → xl:3
B
C
D
<div class="pvs-grid" style="--pvs-grid-columns:12;--pvs-gap:0.5rem">
<div class="pvs-col-full md:pvs-col-6 xl:pvs-col-3 pvs-p-2 pvs-border pvs-bg-surface-muted">满宽 → md:6 → xl:3</div>
<div class="pvs-col-full md:pvs-col-6 xl:pvs-col-3 pvs-p-2 pvs-border pvs-bg-surface-muted">B</div>
<div class="pvs-col-full md:pvs-col-6 xl:pvs-col-3 pvs-p-2 pvs-border">C</div>
<div class="pvs-col-full md:pvs-col-6 xl:pvs-col-3 pvs-p-2 pvs-border">D</div>
</div>显示切换
md:flex · lg:gridB
<div class="pvs-hidden md:pvs-flex lg:pvs-grid pvs-gap-3 pvs-p-3 pvs-border" style="--pvs-grid-columns:2">
<span class="pvs-p-2 pvs-border">md:flex · lg:grid</span>
<span class="pvs-p-2 pvs-border">B</span>
</div>间隙与间距
gap 随断点B
<div class="pvs-flex pvs-flex-col md:pvs-flex-row pvs-gap-2 md:pvs-gap-6 pvs-p-3 pvs-border">
<span class="pvs-p-2 pvs-bg-surface-muted pvs-border">gap 随断点</span>
<span class="pvs-p-2 pvs-border">B</span>
</div>宽度分数
宽 100% → 50% → 33%
<div class="pvs-w-full md:pvs-w-1/2 lg:pvs-w-1/3 pvs-p-3 pvs-border pvs-bg-surface-muted">宽 100% → 50% → 33%</div>仅某断点隐藏
小屏广告条 · md 起隐藏
<span class="pvs-inline pvs-p-2 pvs-border md:pvs-hidden">小屏广告条 · md 起隐藏</span>类名速查
| 类 | 样式 |
|---|---|
sm:pvs-* | ≥576px 生效 |
md:pvs-* | ≥768px 生效 |
lg:pvs-* | ≥992px 生效 |
xl:pvs-* | ≥1200px 生效 |
pvs-col-lg-* | 移动优先 · lg 以下满宽 |
pvs-col-xl-* | 移动优先 · xl 以下满宽 |
pvs-col-full md:pvs-col-6 | 渐进列宽 |
md:pvs-col-6 | 栅格列 |
md:pvs-hidden | 断点隐藏 |
lg:pvs-gap-8 | 断点间隙 |