卡片内可合法使用 header/footer 作为语义化子元素,需用 class 统一控制样式,并通过组件或模板实现逻辑复用,同时确保符合可访问性规范。

在列表卡片设计中,header 和 footer 并不是为单个卡片内置的复用容器——它们是语义化块级元素,作用范围是整个文档或某个节(section),不能直接“嵌入卡片并自动复用”。但你可以通过结构设计和CSS/JS配合,实现视觉与逻辑上的复用效果。
用语义化结构组织卡片内容
每个卡片应是一个独立的语义单元(如 article 或带 role="article" 的 div),内部可包含自定义的 header 和 footer ——这是合法且推荐的做法。浏览器允许在任何可容纳流内容的元素内使用 header 和 footer,只要不放在 blockquote、body 等受限上下文中。
- 正确示例:
<article><header>标题</header><p>正文</p><footer>作者|时间</footer></article> - 避免把全局页眉页脚(
<header></header>)硬塞进每张卡片——这会破坏语义,也增加维护成本 - 卡片内的
header表示该卡片自身的头部信息(如标题、分类图标),footer表示其底部元数据(如操作按钮、状态标签)
用CSS类统一控制样式,避免重复写样式
即使HTML中每个卡片都写了 <header> 和 <footer>,也不等于代码冗余。关键在于用统一的 class 名管理外观,让样式真正“复用”:
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
- 给所有卡片 header 加
class="card-header",footer 加class="card-footer" - 在 CSS 中集中定义:
.card-header { padding: 12px 16px; border-bottom: 1px solid #eee; } - 结合 CSS 自定义属性(CSS variables),方便一键换肤或适配暗色模式
用模板或组件机制减少HTML重复
纯静态 HTML 确实需要每张卡片都写一遍 header 和 footer 标签,但实际开发中可通过以下方式“逻辑复用”:
立即学习“前端免费学习笔记(深入)”;
- 前端框架(Vue/React)中提取为
CardHeader和CardFooter组件,传入 title、actions 等 props - 服务端渲染(如 PHP/Node.js)用 include 或 partial 模板片段,例如
<?php include 'card-header.php'; ?> - 构建工具(如 Vite + HTML 插件)支持 HTML 片段导入,或用 Markdown + 自定义渲染器生成结构一致的卡片
注意可访问性与语义边界
header 和 footer 在卡片内使用时,需确保它们服务于该卡片的逻辑结构,而非全局导航:
- 不要在卡片
header里放网站 logo 或主导航菜单——那是页面级<header>的职责 - 屏幕阅读器会把卡片内的
header当作该卡片的标题区域,所以里面宜放h3或h4,不宜放无关装饰元素 - 若卡片 footer 包含操作按钮,建议加
aria-label或用button而非div,保障交互可达性


















