Card 卡片

通用卡片容器

何时使用

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

代码演示

Card卡片 - 图1

典型卡片

包含标题、内容、操作区域。

  1. <template>
  2. <a-card title="Card Title">
  3. <a href="#" slot="extra">more</a>
  4. <p>card content</p>
  5. <p>card content</p>
  6. <p>card content</p>
  7. </a-card>
  8. </template>

Card卡片 - 图2

无边框

在灰色背景上使用无边框的卡片

  1. <template>
  2. <div style="background:#ECECEC; padding:30px">
  3. <a-card title="Card title" :bordered="false" style="width: 300px">
  4. <p>Card content</p>
  5. <p>Card content</p>
  6. <p>Card content</p>
  7. </a-card>
  8. </div>
  9. </template>

Card卡片 - 图3

更灵活的内容展示

可以利用 Card.Meta 支持更灵活的内容

  1. <template>
  2. <a-card
  3. hoverable
  4. style="width: 240px"
  5. >
  6. <img
  7. alt="example"
  8. src="https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png"
  9. slot="cover"
  10. />
  11. <a-card-meta
  12. title="Europe Street beat">
  13. <template slot="description">www.instagram.com</template>
  14. </a-card-meta>
  15. </a-card>
  16. </template>

Card卡片 - 图4

网格型内嵌卡片

一种常见的卡片内容区隔模式。

  1. <template>
  2. <a-card title="Card Title">
  3. <a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid>
  4. <a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid>
  5. <a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid>
  6. <a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid>
  7. <a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid>
  8. <a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid>
  9. <a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid>
  10. </a-card>
  11. </template>

Card卡片 - 图5

栅格卡片

在系统概览页面常常和栅格进行配合。

  1. <template>
  2. <div style="background-color: #ececec; padding: 20px;">
  3. <a-row :gutter="16">
  4. <a-col :span="8">
  5. <a-card title="Card title" :bordered=false>
  6. <p>card content</p>
  7. </a-card>
  8. </a-col>
  9. <a-col :span="8">
  10. <a-card title="Card title" :bordered=false>
  11. <p>card content</p>
  12. </a-card>
  13. </a-col>
  14. <a-col :span="8">
  15. <a-card title="Card title" :bordered=false>
  16. <p>card content</p>
  17. </a-card>
  18. </a-col>
  19. </a-row>
  20. </div>
  21. </template>

Card卡片 - 图6

内部卡片

可以放在普通卡片内部,展示多层级结构的信息

  1. <template>
  2. <a-card title="Card title">
  3. <p style="fontSize: 14px;color: rgba(0, 0, 0, 0.85); marginBottom: 16px;fontWeight: 500"
  4. >
  5. Group title
  6. </p>
  7. <a-card title="Inner card title">
  8. <a href="#" slot="extra">More</a>
  9. Inner Card content
  10. </a-card>
  11. <a-card title="Inner card title" :style="{ marginTop: '16px' }">
  12. <a href="#" slot="extra">More</a>
  13. Inner Card content
  14. </a-card>
  15. </a-card>
  16. </template>

Card卡片 - 图7

预加载的卡片

数据读入前会有文本块样式

  1. <template>
  2. <div>
  3. <a-card :loading="loading" title="Card title">
  4. whatever content
  5. </a-card>
  6. <a-button @click="handleClick" style="marginTop: 16px">Toggle loading</a-button>
  7. </div>
  8. </template>
  9. <script>
  10. export default {
  11. data() {
  12. return {
  13. loading: true,
  14. }
  15. },
  16. methods: {
  17. handleClick() {
  18. this.loading = !this.loading
  19. }
  20. },
  21. }
  22. </script>

Card卡片 - 图8

支持更多内容配置

一种支持封面、头像、标题和描述信息的卡片。

  1. <template>
  2. <a-card
  3. hoverable
  4. style="width: 300px"
  5. >
  6. <img
  7. alt="example"
  8. src="https://gw.alipayobjects.com/zos/rmsportal/JiqGstEfoWAOHiTxclqi.png"
  9. slot="cover"
  10. />
  11. <template class="ant-card-actions" slot="actions">
  12. <a-icon type="setting" />
  13. <a-icon type="edit" />
  14. <a-icon type="ellipsis" />
  15. </template>
  16. <a-card-meta
  17. title="Card title"
  18. description="This is the description">
  19. <a-avatar slot="avatar" src="https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png" />
  20. </a-card-meta>
  21. </a-card>
  22. </template>

Card卡片 - 图9

简洁卡片

只包含内容区域。

  1. <template>
  2. <a-card style="width: 300px">
  3. <p>Card content</p>
  4. <p>Card content</p>
  5. <p>Card content</p>
  6. </a-card>
  7. </template>

Card卡片 - 图10

带页签的卡片

可承载更多内容

  1. <template>
  2. <div>
  3. <a-card
  4. style="width:100%"
  5. title="Card title"
  6. :tabList="tabList"
  7. :activeTabKey="key"
  8. @tabChange="key => onTabChange(key, 'key')"
  9. >
  10. <span slot="customRender" slot-scope="item">
  11. <a-icon type="home"/>{{item.key}}
  12. </span>
  13. <a href="#" slot="extra">More</a>
  14. {{contentList[key]}}
  15. </a-card>
  16. <br /><br />
  17. <a-card
  18. style="width:100%"
  19. :tabList="tabListNoTitle"
  20. :activeTabKey="noTitleKey"
  21. @tabChange="key => onTabChange(key, 'noTitleKey')"
  22. >
  23. <p v-if="noTitleKey === 'article'">article content</p>
  24. <p v-else="noTitleKey === 'app'">app content</p>
  25. <p v-else="noTitleKey === 'project'">project content</p>
  26. </a-card>
  27. </div>
  28. </template>
  29. <script>
  30. export default {
  31. data () {
  32. return {
  33. tabList: [{
  34. key: 'tab1',
  35. // tab: 'tab1',
  36. scopedSlots: { tab: 'customRender'}
  37. }, {
  38. key: 'tab2',
  39. tab: 'tab2',
  40. }],
  41. contentList: {
  42. tab1: 'content1',
  43. tab2: 'content2',
  44. },
  45. tabListNoTitle: [{
  46. key: 'article',
  47. tab: 'article',
  48. }, {
  49. key: 'app',
  50. tab: 'app',
  51. }, {
  52. key: 'project',
  53. tab: 'project',
  54. }],
  55. key: 'tab1',
  56. noTitleKey: 'app',
  57. }
  58. },
  59. methods: {
  60. onTabChange (key, type) {
  61. console.log(key, type)
  62. this[type] = key
  63. },
  64. },
  65. }
  66. </script>

API

Card

参数说明类型默认值
actions卡片操作组,位置在卡片底部slots-
activeTabKey当前激活页签的 keystring-
headStyle自定义标题区域样式object-
bodyStyle内容区域自定义样式object-
bordered是否有边框booleantrue
cover卡片封面slot-
defaultActiveTabKey初始化选中页签的 key,如果没有设置 activeTabKeystring第一个页签
extra卡片右上角的操作区域string|slot-
hoverable鼠标移过时可浮起booleanfalse
loading当卡片内容还在加载中时,可以用 loading 展示一个占位booleanfalse
tabList页签标题列表, 可以通过scopedSlots属性自定义tabArray<{key: string, tab: any, scopedSlots: {tab: 'XXX'}}>-
title卡片标题string|slot-
type卡片类型,可设置为 inner 或 不设置string-

事件

事件名称说明回调参数
tabChange页签切换的回调(key) => void

Card.Grid

Card.Meta

PropertyDescriptionTypeDefault
avatar头像/图标slot-
description描述内容string|slot-
title标题内容string|slot-