You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express.js+EJS项目如何实现每行展示4个产品且详情位于图片下方

布局调整实现方案

后端路由代码逻辑正常,无需修改,仅需调整EJS模板和对应CSS文件即可实现需求:

1. 替换原有EJS模板代码

<head>
   <title>All Medicine</title>
   <link href="/stylesheets/medicine.css" rel="stylesheet">
</head>
<body>
<div class="medicine-list">
  <% for (let i =0; i<medicine.length; i++){%>
    <div class="medicine-card">
      <img class="medicine-pic" src="./medicine/<%= medicine[i].medicinePic%>" alt="<%= medicine[i].name%>">
      <div class="medicine-info">
        <p><%= medicine[i].name%></p>
        <p>价格:<%= medicine[i].price%></p>
        <p>效价:<%= medicine[i].power%></p>
        <p>库存:<%= medicine[i].quantity%></p>
      </div>
    </div>
  <%}%>
</div>
</body>

注意:原代码中id="pic"重复使用不符合规范,已修改为class选择器

2. 在medicine.css中添加如下样式

.medicine-list {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  padding: 16px;
}
.medicine-card {
  width: calc(25% - 15px);
  box-sizing: border-box;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  padding: 12px;
}
.medicine-pic {
  width: 100%;
  height: 180px;
  object-fit: contain;
  margin-bottom: 12px;
}
.medicine-info p {
  margin: 6px 0;
  font-size: 14px;
  color: #333;
}

如需适配移动端,可额外添加媒体查询:

@media (max-width: 768px) {
  .medicine-card {
    width: calc(50% - 10px);
  }
}
@media (max-width: 480px) {
  .medicine-card {
    width: 100%;
  }
}

内容的提问来源于stack exchange,提问作者smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 20:21:02