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

如何实现左右列表联动换行:右侧换行时左侧同步留白换行

解决方法:右侧列表换行时左侧对应位置自动留空行

你的需求是让左右两列列表的对应行保持高度同步,当右侧列表项因内容换行撑开高度时,左侧对应行也自动留出相同高度的空行。原有的Flex布局方案(将两个<ul>作为同级flex项)无法实现这种行级别的高度同步,因为两个列表的高度是各自独立计算的。

修改思路

将每一组左右列表项绑定到同一行容器中,让每一行成为独立的布局容器,确保左右项共享同一行的高度,右侧换行时左侧自然会撑开对应高度。

方案一:重构HTML结构(推荐)

修改后的HTML代码

<section class="karta__table">
  <div class="table__row">
    <li class="left__item">Etiam poseure</li>
    <li class="right__item">Nulla est</li>
  </div>
  <div class="table__row">
    <li class="left__item">Fusce wisi</li>
    <li class="right__item">2305</li>
  </div>
  <div class="table__row">
    <li class="left__item">Bla hola tola et</li>
    <li class="right__item">Rerurm trada</li>
  </div>
  <div class="table__row">
    <li class="left__item">Vie wisi</li>
    <li class="right__item">A</li>
  </div>
</section>

修改后的CSS代码

.karta__table {
  display: flex;
  flex-direction: column;
  gap: 0.75em; /* 控制行与行之间的间距 */
  font-size: 1.25rem;
  margin-top: 20px;
}

.table__row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start; /* 保证左右项顶部对齐 */
}

.left__item {
  font-weight: normal;
  font-style: italic;
  text-align: right;
  flex-basis: 46%;
  line-height: 1.5em;
  list-style: none;
  margin: 0;
}

.right__item {
  text-align: left;
  flex-basis: 41%;
  line-height: 1.5em;
  list-style: none;
  margin: 0;
}

效果说明

每个.table__row作为独立Flex容器,包含对应位置的左右列表项,当右侧.right__item内容换行时,整行高度会被撑开,左侧.left__item自动占据相同高度,实现你需要的“留空行”效果。


方案二:保留原有<ul>结构(语义化优先)

如果你需要保留原有的列表语义,可以用CSS Grid实现行高同步:

保留原HTML代码,修改CSS如下

.karta__table {
  display: grid;
  grid-template-columns: 46% 41%;
  justify-content: space-between;
  gap: 0;
  font-size: 1.25rem;
  margin-top: 20px;
}

.left__column, .right__column {
  display: grid;
  gap: 0.75em; /* 行间距 */
  list-style: none;
  padding: 0;
  margin: 0;
}

.left__column li {
  font-weight: normal;
  font-style: italic;
  text-align: right;
  line-height: 1.5em;
}

.right__column li {
  text-align: left;
  line-height: 1.5em;
}

效果说明

CSS Grid会自动同步两个列表对应位置的行高,右侧列表项换行时,左侧对应行的高度会被自动撑开,无需额外调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:33:41