卡片
通用卡片容器。
何时使用
最基础的卡片容器,可承载文字、列表、图片、段落,常用于后台概览页面。
代码演示
- 典型卡片 ·
basic - 无边框 ·
border-less - 简洁卡片 ·
simple - 更灵活的内容展示 ·
flexible-content - 栅格卡片 ·
in-column - 预加载的卡片 ·
loading - 网格型内嵌卡片 ·
grid-card - 内部卡片 ·
inner - 带页签的卡片 ·
tabs - 支持更多内容配置 ·
meta - 自定义语义结构的样式和类 ·
style-class
API
通用属性参考:通用属性
<Card title="卡片标题">卡片内容</Card>
| 参数 | 说明 | 类型 | 默认值 | 版本 | 全局配置 |
|---|---|---|---|---|---|
| actions | 卡片操作组,位置在卡片底部 | Array<ReactNode> | - | × | |
| activeTabKey | 当前激活页签的 key | string | - | × | |
是否有边框, 请使用 variant 替换 | boolean | true | × | ||
卡片内容区域样式,请使用 styles.body 替代 | CSSProperties | - | - | × | |
| variant | 形态变体 | outlined | borderless | outlined | 5.24.0 | 5.24.0 |
| classNames | 用于自定义组件内部各语义化结构的 class,支持对象或函数 | Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string> | - | 5.14.0 | |
| cover | 卡片封面 | ReactNode | - | × | |
| defaultActiveTabKey | 初始化选中页签的 key,如果没有设置 activeTabKey | string | 第一个页签的 key | × | |
| extra | 卡片右上角的操作区域 | ReactNode | - | × | |
| hoverable | 鼠标移过时可浮起 | boolean | false | × | |
卡片头部样式,请使用 styles.header 替代 | CSSProperties | - | - | × | |
| loading | 当卡片内容还在加载中时,可以用 loading 展示一个占位 | boolean | false | × | |
| size | card 的尺寸 | medium | small | medium | × | |
| tabBarExtraContent | tab bar 上额外的元素 | ReactNode | - | × | |
| tabList | 页签标题列表 | TabItemType[] | - | × | |
| tabProps | Tabs | - | - | × | |
| title | 卡片标题 | ReactNode | - | × | |
| type | 卡片类型,可设置为 inner 或 不设置 | string | - | × | |
| styles | 用于自定义组件内部各语义化结构的行内 style,支持对象或函数 | Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties> | - | 5.14.0 | |
| onTabChange | 页签切换的回调 | (key) => void | - | × |
Card.Grid
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| hoverable | 鼠标移过时可浮起 | boolean | true |
Card.Meta
| 参数 | 说明 | 类型 | 默认值 | 版本 | 全局配置 |
|---|---|---|---|---|---|
| avatar | 头像/图标 | ReactNode | - | × | |
| description | 描述内容 | ReactNode | - | × | |
| title | 标题内容 | ReactNode | - | × |
Semantic DOM
Card
| 语义节点 | 原生说明 | 版本 |
|---|---|---|
root | 卡片根元素,包含位置定位、背景色、边框、圆角、阴影、内边距等卡片容器的基础样式 | 6.0.0 |
header | 卡片头部区域,包含 flex 布局、最小高度、内边距、文字颜色、字体权重、字体大小、背景色、下边框、顶部圆角等样式 | 5.14.0 |
title | 卡片标题,包含行内块布局、flex 占比、文本省略等标题显示样式 | 5.14.0 |
extra | 卡片右上角的操作区域,包含额外内容的文字颜色和布局样式 | 5.14.0 |
cover | 标题封面,包含封面图片的显示和布局样式 | 5.14.0 |
body | 卡片内容区域,包含内边距、字体大小等内容展示的基础样式 | 5.14.0 |
actions | 卡片底部操作组,包含 flex 布局、列表样式重置、背景色、上边框、底部圆角等操作按钮容器样式 | 5.14.0 |
语义说明来源: vendor/components/card/demo/_semantic.tsx
Card.Meta
| 语义节点 | 原生说明 | 版本 |
|---|---|---|
root | 设置元信息根元素 | 6.0.0 |
section | 设置元信息内容元素 | 6.0.0 |
avatar | 设置元信息图标 | 6.0.0 |
title | 设置元信息标题 | 6.0.0 |
description | 设置元信息描述 | 6.0.0 |
语义说明来源: vendor/components/card/demo/_semantic_meta.tsx
主题变量(Design Token)
类型、继承关系和原生令牌声明保持固定源码原文;默认值由原生主题计算,并可能受 ConfigProvider 覆盖。本表不伪造静态默认值。
| 令牌 | 类型 | 原生说明 |
|---|---|---|
headerBg | string | 卡片头部背景色 |
headerFontSize | number | string | 卡片头部文字大小 |
headerFontSizeSM | number | string | 小号卡片头部文字大小 |
headerHeight | number | string | 卡片头部高度 |
headerHeightSM | number | string | 小号卡片头部高度 |
bodyPaddingSM | number | 小号卡片内边距 |
headerPaddingSM | number | 小号卡片头部内边距 |
bodyPadding | number | 卡片内边距 |
headerPadding | number | 卡片头部内边距 |
actionsBg | string | 操作区背景色 |
actionsLiMargin | string | 操作区每一项的外间距 |
tabsMarginBottom | number | 内置标签页组件下间距 |
extraColor | string | 额外区文字颜色 |
声明来源: vendor/components/card/style/index.ts
import { unit } from '@ant-design/cssinjs';
import type { CSSObject } from '@ant-design/cssinjs';
import { clearFix, resetComponent, textEllipsis } from '../../style';
import type { FullToken, GenerateStyle, GetDefaultToken } from '../../theme/internal';
import { genStyleHooks, mergeToken } from '../../theme/internal';
export interface ComponentToken {
/**
* @desc 卡片头部背景色
* @descEN Background color of card header
*/
headerBg: string;
/**
* @desc 卡片头部文字大小
* @descEN Font size of card header
*/
headerFontSize: number | string;
/**
* @desc 小号卡片头部文字大小
* @descEN Font size of small card header
*/
headerFontSizeSM: number | string;
/**
* @desc 卡片头部高度
* @descEN Height of card header
*/
headerHeight: number | string;
/**
* @desc 小号卡片头部高度
* @descEN Height of small card header
*/
headerHeightSM: number | string;
/**
* @desc 小号卡片内边距
* @descEN Padding of small card body
*/
bodyPaddingSM: number;
/**
* @desc 小号卡片头部内边距
* @descEN Padding of small card head
*/
headerPaddingSM: number;
/**
* @desc 卡片内边距
* @descEN Padding of card body
*/
bodyPadding: number;
/**
* @desc 卡片头部内边距
* @descEN Padding of card head
*/
headerPadding: number;
/**
* @desc 操作区背景色
* @descEN Background color of card actions
*/
actionsBg: string;
/**
* @desc 操作区每一项的外间距
* @descEN Margin of each item in card actions
*/
actionsLiMargin: string;
/**
* @desc 内置标签页组件下间距
* @descEN Margin bottom of tabs component
*/
tabsMarginBottom: number;
/**
* @desc 额外区文字颜色
* @descEN Text color of extra area
*/
extraColor: string;
}
interface CardToken extends FullToken<'Card'> {
/**
* @desc 卡片阴影
* @descEN Shadow of card
*/
cardShadow: string;
/**
* @desc 卡片头部内边距
* @descEN Padding of card header
*/
cardHeadPadding: number;
/**
* @desc 卡片基础内边距
* @descEN Padding of base card
*/
cardPaddingBase: number;
/**
* @desc 卡片操作区图标大小
* @descEN Size of card actions icon
*/
cardActionsIconSize: number;
}
原生通用属性
Tips: 以下通用属性适用于 antd 大部分组件,不支持的组件会单独说明。
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| style | 自定义样式 | CSSProperties | - |
| className | 自定义类名 | string | - |
| rootClassName | 添加在组件最外层的 className | string | - |
| autoFocus | 自动获取焦点,仅对表单类、链接、交互容器等可聚焦元素生效 | boolean | false |
安装并复现示例
npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23
使用 ConfigProvider 和原生 App,并单独配置 dayjs 语言。每个示例在查看代码中列出完整源码文件和额外固定依赖。示例名称用于选择演示,不是组件通用属性。主题、语言与 SSR 初始化见资源安装指南。
原生类型参考
源码查看器包含未修改的原生实现和以下声明文件,继承类型仍位于原生包中。代码中的英文注释保留为源码参考。
vendor/components/card/Card.tsxvendor/components/card/CardGrid.tsxvendor/components/card/CardMeta.tsxvendor/components/card/index.tsxvendor/components/card/style/index.ts
来源与许可
https://github.com/ant-design/ant-design/tree/4a39f54842eade4e565ab336ef6097cd7e723cdd
保留原生中英文正文与可执行示例;官网专用的嵌入章节和令牌表格在本地展开。Ant Design 使用 MIT 许可,另列依赖的许可证也需保留。上传预览禁止向外发起请求,不提供后端服务。