Container 容器
Container 是纯粹的布局容器:给出层级化的表面、圆角与内边距,不处理语义或交互。
- 最多三层。顶层容器(没有父容器)是 1 层;子容器自动比父容器深一层,超过 3 层时停在 3 层。
- 用
level手动指定 1–3,覆盖自动推导——适合把卡片放进已有布局、但不想让它看起来更深一层的情况。 as换根元素标签(section、aside等),padded="false"关掉层级内边距,交给内容自己排版。- 容器通过
provide把自己的层级交给子容器,所以层级判断不依赖 DOM 结构。
Card 与 DatePicker 复用同一套层级上下文;Container 本身也可以直接包住任意内容。
自动层级
嵌套三层即可看到圆角与表面逐层收窄,再往里嵌套会停在第 3 层:
第 1 层
第 2 层
第 3 层
第 4 层回落到第 3 层
vue
<script setup lang="ts">
import { Container } from "@sharpdotnut/dotsharp";
</script>
<template>
<Container>
<p>第 1 层</p>
<Container>
<p>第 2 层</p>
<Container>
<p>第 3 层</p>
<Container>
<p>第 4 层回落到第 3 层</p>
</Container>
</Container>
</Container>
</Container>
</template>手动层级
level 会覆盖自动推导,但不会影响后代:子容器仍然从你指定的层级继续加深。
手动指定为第 3 层,与嵌套深度无关
vue
<template>
<Container level="3">手动指定为第 3 层,与嵌套深度无关</Container>
</template>与 Card 组合
Card 自带表面样式,放在 Container 里时同样自动加深一层;Container 负责分组,Card 负责可辨识的内容块。
账户
本周用量
已使用 42% 的配额。
vue
<template>
<Container>
<Card title="账户" subtitle="本周用量">已使用 42% 的配额。</Card>
</Container>
</template>API
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
level | 1 | 2 | 3 | 自动 | 手动指定层级 |
as | string | "div" | 根元素标签 |
padded | boolean | true | 是否使用层级对应的内边距 |