Skip to content

Card 卡片 ​

信息聚合容器,支持封面、头部、主体、底部与加载占位。

基础用法 ​

vue
<template>
  <lh-card title="水墨">
    <view>卡片内容</view>
  </lh-card>
</template>

封面与底部 ​

vue
<template>
  <lh-card title="山水册页">
    <template #cover>
      <image class="cover" src="https://placeholder.invalid/cover.png" mode="aspectFill" />
    </template>
    <view>卡片内容</view>
    <template #footer>
      <view>底部操作</view>
    </template>
  </lh-card>
</template>

封面内子元素需自设宽度

share 的「封面子元素撑满宽度」规则(.lh-card__cover > *)依赖 WXSS 不支持的通配选择器,净化管线会丢弃它。小程序端请给封面内的 <image> 等子元素显式写宽度(如 width: 100%)。

头部右侧操作区 ​

extra 插槽渲染在标题右侧,仅在存在 title 或 header 插槽时出现。

vue
<template>
  <lh-card title="订单">
    <template #extra>
      <lh-button size="small" text>查看更多</lh-button>
    </template>
    <view>卡片内容</view>
  </lh-card>
</template>

阴影与可点击 ​

vue
<template>
  <lh-card shadow="hover" clickable @click="onClick">
    <view>悬停浮起,点击触发事件</view>
  </lh-card>
</template>

<script setup lang="ts">
const onClick = () => console.log('点击卡片')
</script>

加载占位 ​

vue
<template>
  <lh-card title="水墨" loading>
    <view>内容加载中时不渲染</view>
  </lh-card>
</template>

Props ​

属性说明类型默认值
title卡片标题(也可用 header 插槽)string—
shadow阴影显示时机'always' | 'hover' | 'never''always'
clickable整卡可点击(承担 button 键盘语义)booleanfalse
loading加载态:内容区以骨架占位booleanfalse
themeVars组件级主题变量(键自动加 --lh- 前缀)Record<string, string>—
bgPattern花纹背景 URL(如 var(--lh-pattern-willow)),不受全局白名单限制string—
customClass自定义类名string—
sx快速布局属性LhSxProps—

Events ​

事件说明回调参数
click点击整卡(仅 clickable 时触发)(e: Event)

Slots ​

插槽说明
cover封面
header头部(优先于 title)
extra头部右侧操作区(依赖头部存在)
default主体内容
footer底部

键盘激活仅 H5

clickable 的卡片在 H5 支持 Enter / Space 键盘激活(对齐 APG button pattern);小程序无键盘事件,该处理由条件编译在 MP 端剔除。