语义化HTML用和构建商品结构,CSS Grid实现自适应网格布局,通过minmax(280px,1fr)自动调节列数,配合gap控制间距、line-clamp限制标题行数、object-fit规范图片,辅以媒体查询优化小屏体验。

用 HTML + CSS 搭建商品卡片网格,核心是语义化结构 + 灵活布局。不需要框架也能实现响应式、对齐整齐、可扩展的卡片列表。
1. 用语义化 HTML 组织商品结构
每个商品用 在 图片、标题、价格、按钮需视觉对齐。常见问题是标题长短不一导致卡片高度参差——可用以下方式约束: 生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力:
- 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面;
- 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”;
- 提及位于 `apps/console/src/featur 在小屏下让网格退化为单列,同时微调间距和字体: 不复杂但容易忽略:记得给图片加 包裹,体现独立内容单元;整体列表用 或 包裹,比单纯用 <section class="product-grid"><article class="product-card">
@@##@@
<h3 class="product-title">运动鞋 A</h3>
<p class="product-price">¥299</p>
<button class="add-to-cart">加入购物车</button>
</article><article class="product-card">
@@##@@
<h3 class="product-title">休闲鞋 B</h3>
<p class="product-price">¥189</p>
<button class="add-to-cart">加入购物车</button>
</article><!-- 更多 article... --></section>2. 用 CSS Grid 实现自适应卡片网格
.product-grid 上启用 Grid,用 repeat(auto-fill, minmax(...)) 让列数随容器宽度自动调整:.product-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 24px;
padding: 16px;
}
<p>.product-card {
border: 1px solid #e0e0e0;
border-radius: 8px;
overflow: hidden;
background: #fff;
transition: box-shadow 0.2s;
}</p><p>.product-card:hover {
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}</p>
3. 卡片内部保持结构一致与高度统一
.product-title 设固定行数+省略:display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
object-fit: cover 保持比例并裁剪填充4. 简单响应式增强(可选但推荐)
<pre class="brush:php;toolbar:false;">@media (max-width: 768px) {
.product-grid {
grid-template-columns: 1fr;
gap: 16px;
padding: 12px;
}
.product-title {
font-size: 1rem;
}
.product-price {
font-size: 1.125rem;
}
}alt 属性,保障可访问性;所有交互元素(如按钮)保持足够点击热区(建议 ≥44×44px)。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










