布局 · 盒模型

布局

Box 盒模型

盒模型与层叠上下文原语。

border-box

pvs-box-border:padding/border 计入 width(推荐默认)。

box-border
总宽 8rem
box-content
内容宽 8rem + padding
<div class="pvs-flex pvs-gap-4 pvs-flex-wrap">
  <div class="pvs-box-border pvs-w-32 pvs-p-4 pvs-border pvs-bg-surface-muted">
    <code>box-border</code>
    <br>
    <span class="pvs-text-xs">总宽 8rem</span>
  </div>
  <div class="pvs-box-content pvs-w-32 pvs-p-4 pvs-border">
    <code>box-content</code>
    <br>
    <span class="pvs-text-xs">内容宽 8rem + padding</span>
  </div>
</div>

层叠隔离 isolate

避免内部 z-index 与页面其他层混在一起。

外层 z-50
isolate 内 z-10 不压住外层
<div class="pvs-relative pvs-p-6 pvs-border">
  <span class="pvs-absolute pvs-top-0 pvs-left-0 pvs-p-2 pvs-border pvs-z-50 pvs-bg-surface-muted">外层 z-50</span>
  <div class="pvs-isolate pvs-relative pvs-mt-8 pvs-p-4 pvs-border pvs-bg-surface">
    <span class="pvs-absolute pvs-top-2 pvs-right-2 pvs-p-1 pvs-border pvs-z-10 pvs-bg-primary" style="color:#fff">isolate 内 z-10</span>
    <code>不压住外层</code>
  </div>
</div>

卡片尺寸计算

固定 max-w + padding 不撑破容器

<div class="pvs-box-border pvs-w-full pvs-max-w-xs pvs-p-4 pvs-border">
  <p class="pvs-m-0 pvs-text-sm">固定 max-w + padding 不撑破容器</p>
</div>

类名速查

样式
pvs-box-borderbox-sizing: border-box
pvs-box-contentcontent-box
pvs-isolateisolation: isolate