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

如何使用HTML与CSS实现树形排列的卡片布局?

不对称树形卡片排布解决方案

调整后的CSS代码

.ranking-section {
  display: inline-block;
  width: 100%;
  box-sizing: border-box;
}
.ranking-section .card {
  border: none;
  float: left;
  padding: 0 10px;
  margin-bottom: 20px;
  box-sizing: border-box;
}
/* 第一行:单个卡片居中,尺寸和其余卡片保持一致 */
.ranking-section .card:nth-child(1) {
  width: 25%;
  float: none;
  margin: 0 auto 20px;
  clear: both;
}
/* 第二行:两个卡片并排,各占半行宽度 */
.ranking-section .card:nth-child(2),
.ranking-section .card:nth-child(3) {
  width: 50%;
}
/* 第三行及之后:所有卡片宽度25%,每行默认排放4个 */
.ranking-section .card:nth-child(n+4) {
  width: 25%;
}
/* 强制第四个卡片换行,开启第三行 */
.ranking-section .card:nth-child(4) {
  clear: both;
}

/* 若需要第三行所有卡片统一放在同一行不换行,可替换上面两段规则为以下代码:
.ranking-section {
  white-space: normal;
}
.ranking-section::after {
  content: '';
  display: block;
  clear: both;
}
.ranking-section .card:nth-child(n+4) {
  width: 25%;
  float: none;
  display: inline-block;
}
.ranking-section .card:nth-child(4) {
  clear: both;
  margin-left: 0;
}
.ranking-section .card:nth-child(n+4) ~ .card {
  white-space: nowrap;
}
*/

规则说明

  • 无需修改原有HTML结构,仅调整CSS即可实现需求
  • 新增box-sizing: border-box规则,避免padding导致的宽度溢出计算错误
  • 通过nth-child选择器精准匹配不同位置的卡片,不需要额外添加row容器做分区
  • 第一行卡片默认和其余卡片尺寸一致、居中显示;如果需要第一行卡片占满整行,可将nth-child(1)的宽度改为100%,单独控制内部内容居中即可
  • 第三行默认每行放4个卡片自动换行,若需要所有剩余卡片都放在同一行,可使用注释内的替换规则,配合横向滚动即可实现

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:06:02