• Card 卡片
    • 何时使用
    • 代码演示
      • 典型卡片
      • 无边框
      • 更灵活的内容展示
      • 网格型内嵌卡片
      • 栅格卡片
      • 内部卡片
      • 预加载的卡片
      • 支持更多内容配置
      • 简洁卡片
      • 带页签的卡片
  • API
    • Card
    • 事件
    • Card.Grid
    • Card.Meta

    Card 卡片

    通用卡片容器

    何时使用

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

    代码演示

    Card 卡片 - 图1

    典型卡片

    包含标题、内容、操作区域。可通过设置size为default或者small,控制尺寸

    1. <template>
    2. <div>
    3. <a-card title="Default size card" style="width: 300px">
    4. <a href="#" slot="extra">more</a>
    5. <p>card content</p>
    6. <p>card content</p>
    7. <p>card content</p>
    8. </a-card>
    9. <br />
    10. <a-card size="small" title="Small size card" style="width: 300px">
    11. <a href="#" slot="extra">more</a>
    12. <p>card content</p>
    13. <p>card content</p>
    14. <p>card content</p>
    15. </a-card>
    16. </div>
    17. </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 hoverable style="width: 240px">
    3. <img
    4. alt="example"
    5. src="https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png"
    6. slot="cover"
    7. />
    8. <a-card-meta title="Europe Street beat">
    9. <template slot="description"
    10. >www.instagram.com</template
    11. >
    12. </a-card-meta>
    13. </a-card>
    14. </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. Group title
    5. </p>
    6. <a-card title="Inner card title">
    7. <a href="#" slot="extra">More</a>
    8. Inner Card content
    9. </a-card>
    10. <a-card title="Inner card title" :style="{ marginTop: '16px' }">
    11. <a href="#" slot="extra">More</a>
    12. Inner Card content
    13. </a-card>
    14. </a-card>
    15. </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 hoverable style="width: 300px">
    3. <img
    4. alt="example"
    5. src="https://gw.alipayobjects.com/zos/rmsportal/JiqGstEfoWAOHiTxclqi.png"
    6. slot="cover"
    7. />
    8. <template class="ant-card-actions" slot="actions">
    9. <a-icon type="setting" />
    10. <a-icon type="edit" />
    11. <a-icon type="ellipsis" />
    12. </template>
    13. <a-card-meta title="Card title" description="This is the description">
    14. <a-avatar
    15. slot="avatar"
    16. src="https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png"
    17. />
    18. </a-card-meta>
    19. </a-card>
    20. </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"> <a-icon type="home" />{{item.key}} </span>
    11. <a href="#" slot="extra">More</a>
    12. {{contentList[key]}}
    13. </a-card>
    14. <br /><br />
    15. <a-card
    16. style="width:100%"
    17. :tabList="tabListNoTitle"
    18. :activeTabKey="noTitleKey"
    19. @tabChange="key => onTabChange(key, 'noTitleKey')"
    20. >
    21. <p v-if="noTitleKey === 'article'">article content</p>
    22. <p v-else="noTitleKey === 'app'">app content</p>
    23. <p v-else="noTitleKey === 'project'">project content</p>
    24. </a-card>
    25. </div>
    26. </template>
    27. <script>
    28. export default {
    29. data() {
    30. return {
    31. tabList: [
    32. {
    33. key: 'tab1',
    34. // tab: 'tab1',
    35. scopedSlots: { tab: 'customRender' },
    36. },
    37. {
    38. key: 'tab2',
    39. tab: 'tab2',
    40. },
    41. ],
    42. contentList: {
    43. tab1: 'content1',
    44. tab2: 'content2',
    45. },
    46. tabListNoTitle: [
    47. {
    48. key: 'article',
    49. tab: 'article',
    50. },
    51. {
    52. key: 'app',
    53. tab: 'app',
    54. },
    55. {
    56. key: 'project',
    57. tab: 'project',
    58. },
    59. ],
    60. key: 'tab1',
    61. noTitleKey: 'app',
    62. };
    63. },
    64. methods: {
    65. onTabChange(key, type) {
    66. console.log(key, type);
    67. this[type] = key;
    68. },
    69. },
    70. };
    71. </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'}}>-
    sizecard 的尺寸default | smalldefault
    title卡片标题string|slot-
    type卡片类型,可设置为 inner 或 不设置string-

    事件

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

    Card.Grid

    Card.Meta

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