# 卡片

- 页面: https://jiguang132.com/zh/resources/ant-design/docs/card
- 资源: Ant Design (https://jiguang132.com/zh/resources/ant-design.md)
- 全部指南: https://jiguang132.com/zh/resources/ant-design/docs.md

通用卡片容器。


## 何时使用 {#when-to-use}

最基础的卡片容器，可承载文字、列表、图片、段落，常用于后台概览页面。

## 代码演示 {#examples}


- 典型卡片 · `basic`
- 无边框 · `border-less`
- 简洁卡片 · `simple`
- 更灵活的内容展示 · `flexible-content`
- 栅格卡片 · `in-column`
- 预加载的卡片 · `loading`
- 网格型内嵌卡片 · `grid-card`
- 内部卡片 · `inner`
- 带页签的卡片 · `tabs`
- 支持更多内容配置 · `meta`
- 自定义语义结构的样式和类 · `style-class`




## API

通用属性参考：[通用属性](#jguang-common-props)

```jsx
<Card title="卡片标题">卡片内容</Card>
```

| 参数 | 说明 | 类型 | 默认值 | 版本 | [全局配置](/components/config-provider#component-config) |
| --- | --- | --- | --- | --- | --- |
| actions | 卡片操作组，位置在卡片底部 | Array&lt;ReactNode> | - |  | × |
| activeTabKey | 当前激活页签的 key | string | - |  | × |
| ~~bordered~~ | 是否有边框, 请使用 `variant` 替换 | boolean | true |  | × |
| ~~bodyStyle~~ | 卡片内容区域样式，请使用 `styles.body` 替代 | CSSProperties | - | - | × |
| variant | 形态变体 | `outlined` \| `borderless` | `outlined` | 5.24.0 | 5.24.0 |
| classNames | 用于自定义组件内部各语义化结构的 class，支持对象或函数 | Record<[SemanticDOM](#semantic-dom), string> \| (info: { props })=> Record<[SemanticDOM](#semantic-dom), string> | - |  | 5.14.0 |
| cover | 卡片封面 | ReactNode | - |  | × |
| defaultActiveTabKey | 初始化选中页签的 key，如果没有设置 activeTabKey | string | `第一个页签的 key` |  | × |
| extra | 卡片右上角的操作区域 | ReactNode | - |  | × |
| hoverable | 鼠标移过时可浮起 | boolean | false |  | × |
| ~~headStyle~~ | 卡片头部样式，请使用 `styles.header` 替代 | CSSProperties | - | - | × |
| loading | 当卡片内容还在加载中时，可以用 loading 展示一个占位 | boolean | false |  | × |
| size | card 的尺寸 | `medium` \| `small` | `medium` |  | × |
| tabBarExtraContent | tab bar 上额外的元素 | ReactNode | - |  | × |
| tabList | 页签标题列表 | [TabItemType](/components/tabs#tabitemtype)[] | - |  | × |
| tabProps | [Tabs](/components/tabs#tabs) | - | - |  | × |
| title | 卡片标题 | ReactNode | - |  | × |
| type | 卡片类型，可设置为 `inner` 或 不设置 | string | - |  | × |
| styles | 用于自定义组件内部各语义化结构的行内 style，支持对象或函数 | Record<[SemanticDOM](#semantic-dom), CSSProperties> \| (info: { props })=> Record<[SemanticDOM](#semantic-dom), CSSProperties> | - |  | 5.14.0 |
| onTabChange | 页签切换的回调 | (key) => void | - |  | × |

### Card.Grid

| 参数      | 说明             | 类型    | 默认值 | 版本 |
| --------- | ---------------- | ------- | ------ | ---- |
| hoverable | 鼠标移过时可浮起 | boolean | true   |      |

### Card.Meta

| 参数 | 说明 | 类型 | 默认值 | 版本 | [全局配置](/components/config-provider#component-config) |
| --- | --- | --- | --- | --- | --- |
| 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）{#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`

```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;
}
```


## 原生通用属性 {#jguang-common-props}


> Tips: 以下通用属性适用于 antd 大部分组件，不支持的组件会单独说明。

| 参数 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- |
| style | 自定义样式 | CSSProperties | - |
| className | 自定义类名 | string | - |
| rootClassName | 添加在组件最外层的 className | string | - |
| autoFocus | 自动获取焦点，仅对表单类、链接、交互容器等可聚焦元素生效 | boolean | false |


## 安装并复现示例

```bash
npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23
```

使用 ConfigProvider 和原生 App，并单独配置 dayjs 语言。每个示例在查看代码中列出完整源码文件和额外固定依赖。示例名称用于选择演示，不是组件通用属性。主题、语言与 SSR 初始化见资源安装指南。

## 原生类型参考

源码查看器包含未修改的原生实现和以下声明文件，继承类型仍位于原生包中。代码中的英文注释保留为源码参考。

- `vendor/components/card/Card.tsx`
- `vendor/components/card/CardGrid.tsx`
- `vendor/components/card/CardMeta.tsx`
- `vendor/components/card/index.tsx`
- `vendor/components/card/style/index.ts`

## 来源与许可

https://github.com/ant-design/ant-design/tree/4a39f54842eade4e565ab336ef6097cd7e723cdd

保留原生中英文正文与可执行示例；官网专用的嵌入章节和令牌表格在本地展开。Ant Design 使用 MIT 许可，另列依赖的许可证也需保留。上传预览禁止向外发起请求，不提供后端服务。

---

JGuang 全部资源索引: https://jiguang132.com/llms.txt
