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

如何使用inline-block实现3个卡片元素横向排列?

卡片横向排列解决方案

为啥你的inline-block没生效?

你给.card加了display: inline-block,理论上应该能横向排,但可能是这两个细节拖了后腿:

  1. 你只在HTML里放了1个卡片,当然看不到横向排列效果;
  2. 就算加了3个,当前.card的宽度30%+左右各1% margin,总占用宽度是30%*3 + 1%*6 = 96%(每个卡片左右各1%,3个就是6个1%),虽然理论能放下,但容器的padding或浏览器计算误差可能导致卡片挤到下一行。

下面给你两种靠谱的解决方法:

方法一:修复inline-block布局

调整卡片宽度,确保总占用宽度不超100%,同时保留font-size:0消除inline-block元素间的空白间隙。

修改.card的CSS:

.card {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  position: relative;
  display: inline-block;
  background: white;
  width: 31%; /* 调整宽度,让总占用更合理 */
  height: auto;
  margin: 0 1%;
  margin-bottom: 2%;
  border-radius: 10px;
  border-style: solid;
  border-color: rgb(90, 16, 141);
}

然后在HTML里添上3个卡片:

<div class="cards_container">
  <div class="card">
    <img src="siteimages/CS3W.jfif" class="card_image">
    <p class="card_title_p"><b>HiKu (CS3W)</b></p>
    <div class="card_p">Model: CS3W<br> Cell type: Mono-crystalline<br> Power range: 430~455 W<br> Max. system Voltage: 1400V<br> Connector type: T4 or H4 UTX or MC4-EVO2</div>
    <div class="card_info" onclick="window.location.assign('ugabuga.html');">Learn more</div>
  </div>
  <div class="card">
    <img src="siteimages/CS3W.jfif" class="card_image">
    <p class="card_title_p"><b>HiKu (CS3W)</b></p>
    <div class="card_p">Model: CS3W<br> Cell type: Mono-crystalline<br> Power range: 430~455 W<br> Max. system Voltage: 1400V<br> Connector type: T4 or H4 UTX or MC4-EVO2</div>
    <div class="card_info" onclick="window.location.assign('ugabuga.html');">Learn more</div>
  </div>
  <div class="card">
    <img src="siteimages/CS3W.jfif" class="card_image">
    <p class="card_title_p"><b>HiKu (CS3W)</b></p>
    <div class="card_p">Model: CS3W<br> Cell type: Mono-crystalline<br> Power range: 430~455 W<br> Max. system Voltage: 1400V<br> Connector type: T4 or H4 UTX or MC4-EVO2</div>
    <div class="card_info" onclick="window.location.assign('ugabuga.html');">Learn more</div>
  </div>
</div>

方法二:用Flex布局(更省心)

现在没人还纠结inline-block的空白间隙了,Flex布局直接搞定,还能自动适配小屏幕换行。

改.cards_container的CSS:

.cards_container {
  margin: 50px auto 0;
  padding: 0 150px;
  max-width: 2000px;
  display: flex; /* 开启flex布局 */
  flex-wrap: wrap; /* 屏幕宽度不足时自动换行 */
  gap: 2%; /* 卡片之间的空隙,比margin更直观 */
}

再改.card的CSS,去掉inline-block,调整宽度:

.card {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  position: relative;
  background: white;
  width: calc(33.333% - 1.333%); /* 3个卡片平分容器,减去gap的影响 */
  height: auto;
  margin-bottom: 2%;
  border-radius: 10px;
  border-style: solid;
  border-color: rgb(90, 16, 141);
}

这样设置后,3个卡片稳稳排在一行,缩小屏幕还会自动换行,完美解决问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 23:40:19