基于原生 HTML 与 CSS 的轻量级响应式文章卡片网格组件,适用于技术博客、企业新闻、产品更新日志及其他内容列表页面。
当前版本:v0.1.0 · 技术栈:HTML5 / CSS Grid / Flexbox / CSS Media Queries · 零 JavaScript、零框架依赖
Responsive Article Grid 是一个专注于内容展示布局的前端示例项目。它使用 CSS Grid 实现响应式网格及同行卡片自动等高,使用 Flexbox 将作者信息稳定地排列在卡片底部。
本项目以简洁、易复用、易维护为原则:不开启复杂的交互逻辑,不绑定特定框架或 CMS,可直接复制到普通 HTML 网站,也可以作为 WordPress 主题中动态文章列表的样式基础。
项目边界: 它是一个静态布局演示组件,不是完整博客系统、WordPress 插件或内容管理后台。
| 场景 | 推荐用法 |
|---|---|
| 技术博客 / 开发者博客 | 展示文章标题、摘要、分类、时间及作者 |
| 产品更新日志(Changelog) | 展示版本发布记录、升级指南和功能公告 |
| 企业新闻 / 行业资讯 | 作为新闻列表、公司动态或媒体报道的卡片样式 |
| 教程与知识库 | 展示使用指南、文档条目和学习资源 |
| WordPress 主题 | 将静态卡片结构改成文章循环,由 WordPress 输出内容 |
| 前端布局学习 | 理解 Grid 同行等高、Flexbox 自动推底与响应式断点 |
对于需要图片瀑布流、复杂筛选或实时加载数据的页面,本项目不是现成的完整解决方案。
- 响应式列数: 桌面端 3 列、平板端 2 列、手机端 1 列。
- 同行卡片等高: Grid 默认拉伸同一行卡片,不强制不同行保持等高。
- 作者底部对齐: Flexbox 配合
margin-top: auto,适应不同长度的标题与摘要。 - 清晰的信息层级: 分类、日期、标题、摘要、作者和头像。
- 简洁的交互反馈: 卡片边框及标题 Hover 变化、键盘焦点样式。
- 减少动画适配: 尊重系统
prefers-reduced-motion偏好。 - 离线预览: 12 张英文示例卡片及 3 张本地 SVG 占位头像,无需联网。
- 轻量依赖: 不使用 JavaScript、Bootstrap 或其他第三方库。
| 视口宽度 | 列数 |
|---|---|
| ≥ 992px | 3 |
| 768–991px | 2 |
| ≤ 767px | 1 |
断点来自当前示例的设计选择,并非组件必须遵守的固定标准;集成到其他网站时,可根据页面容器宽度调整。
responsive-article-grid/
├── index.html # 演示页面及示例文章数据
├── assets/
│ ├── css/
│ │ └── article-grid.css # 布局、视觉样式和响应式规则
│ └── images/
│ └── avatars/
│ ├── fede.svg # 示例占位头像
│ ├── chris.svg
│ └── xavier.svg
└── README.md
- 下载或克隆仓库。
- 在浏览器中直接打开
index.html,无需构建工具或本地服务器。 - 复制页面中一个完整的
<article class="article-card">…</article>,并将它放入.article-grid容器。 - 替换分类、日期、标题、摘要、作者、头像和文章链接。
- 根据站点设计调整
assets/css/article-grid.css中的颜色、间距、字号和断点。
核心布局代码:
.article-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 24px;
}
.article-card {
display: flex;
flex-direction: column;
min-width: 0;
}
.article-card__author {
margin-top: auto;
}布局原理: 外部 Grid 负责列数与同行等高,内部 Flexbox 负责内容纵向排列,margin-top: auto 将作者信息推至底部。无需 JS 计算卡片高度。
- 普通 HTML 网站: 复制
.article-grid和.article-card结构,并引入样式文件。 - Bootstrap 5 网站: 可继续使用组件自己的 Grid,避免重复控制列数;如果改用 Bootstrap 栅格,请检查容器和间距是否与现有样式冲突。
- WordPress 经典主题: 用
WP_Query或主题文章循环动态输出卡片内容;样式层继续复用,不需要将静态示例改造成插件。 - Gutenberg 内容页面: 可将结构改写为适用的区块或 Pattern,但需单独检查编辑器与前台的样式一致性。
主要调整位置在 assets/css/article-grid.css:
| 需要修改 | 相关选择器 / 变量 |
|---|---|
| 网格列数、间距 | .article-grid |
| 卡片内边距、圆角、边框 | .article-card、--card-radius、--card-border |
| 标题字号、行高 | .article-card__title |
| 摘要字号、行高 | .article-card__excerpt |
| 作者位置及间距 | .article-card__author |
| 移动端布局 | CSS @media 规则 |
| 颜色主题 | :root 中的 CSS 自定义属性 |
维护时优先遵守以下约束:
- 先保证内容可读。 默认不固定卡片高度、不强制截断标题或摘要;如果业务需要截断,应单独验证多语言与窄屏表现。
- 保留语义化 HTML。 文章使用
<article>,标题使用标题标签,日期使用<time>;真实文章必须替换示例锚点链接。 - 保持键盘可访问。 不删除已有
:focus-visible样式;若新增整卡可点击行为,避免无效或嵌套的链接结构。 - 避免过度封装。 基础布局不需要 JS 高度同步、额外 CSS 框架或复杂构建流程。
- 控制样式作用域。 集成现有主题时,保留
article-grid/article-card类名前缀,避免污染通用元素样式。 - 先测试再发布。 特别检查极长标题、空摘要、不同字号、移动端横向溢出,以及作者底部对齐效果。
以下为研究方向,不是当前版本已完成的功能;按实际需求逐步实施,无需一次全部开发。
| 阶段 | 优先级 | 建议方向 |
|---|---|---|
v0.1.x |
高 | 修复兼容性问题、完善文档与测试用例;不改变基础结构 |
v0.2.x |
中 | 增加可选配色、深色模式或卡片密度方案,保持零 JS 依赖 |
| 独立示例 | 中 | 提供 WordPress 文章循环示例、Gutenberg Pattern 示例,而非耦合核心组件 |
| 需求驱动 | 低 | 根据真实项目再评估分页、分类筛选、加载更多等交互能力 |
v1.0.0 |
条件成熟后 | 完成跨设备验证、文档稳定及可复用性评估,再发布稳定版 |
不建议优先增加: JS 动态等高、复杂视觉动效、依赖型 UI 框架或完整后台管理功能。这些内容会模糊项目的定位,并增加维护成本。
- 桌面、平板、手机分别显示 3 / 2 / 1 列
- 同行不同长度的卡片高度一致
- 作者信息排列在卡片底部
- 超长标题和摘要不会撑破容器
- 键盘 Tab 能访问文章链接并看到焦点状态
- 减少动画偏好下不产生不必要的过渡效果
- 本地头像正常显示,无外部网络依赖
- 集成到目标站点后,真实链接和动态数据正确输出
- 示例标题链接使用
#article-xx页面内锚点,仅用于布局演示,不是有效的文章详情链接。 - 部分演示文本参考了文章卡片布局截图,其他为模拟内容,不代表相关产品的真实更新公告。
- 本地 SVG 头像仅为占位图,并非对应作者的真实照片。
- 任何具体 WordPress 集成代码、分页及内容筛选能力,均应在独立示例或后续版本中实现。
这个仓库的长期目标是保留一套简洁、稳定、可移植的文章卡片布局基础组件:需要时能直接复用,出现问题时容易理解、定位与维护。