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

CSS Grid:如何将跨行列的基线与其他列最后一行对齐

实现元素a与元素c的基线对齐

方案一:使用last baseline对齐跨多行网格项

默认情况下,跨多行的网格项会以第一行的基线作为对齐基准,因此初始代码中元素a会和元素b对齐。通过给元素a设置align-self: last baseline,可以让它以所在网格容器的最后一行基线(即元素c所在行的基线)作为对齐基准,直接实现需求。

修改后的代码如下:

CSS

#grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  align-items: baseline;
}
#a{
  grid-row: 1 / span 2;
  grid-column: 1;
  padding: 8px;
  background: red;
  align-self: last baseline; /* 关键属性 */
}
#b{
  grid-row: 1;
  grid-column: 2;
  background: yellow;
}
#c{
  grid-row: 2;
  grid-column: 2;
  background: blue;
}

HTML

<div id="grid">
  <div id="a">aaaaa</div>
  <div id="b">bbbbb</div>
  <div id="c">ccccc</div>
</div>

方案二:嵌套网格容器对齐基线

如果你倾向于将元素b和c包裹在容器内,只需将包裹容器#d设置为grid布局(而非inline-block)。此时,作为外部网格项的#d,其基线会对应内部网格最后一行的基线(即元素c的基线),外部网格的align-items: baseline会自动让元素a与#d的基线对齐,间接实现a与c的基线对齐。

修改后的代码如下:

CSS

#grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  align-items: baseline;
}
#a{
  grid-row: 1;
  grid-column: 1;
  padding:8px;
  background:red;
}
#d{
  display: grid; /* 使用grid布局替代inline-block */
  grid-row: 1;
  grid-column: 2;
}
#b{
  background:yellow;
}
#c{
  background:blue;
}

HTML

<div id="grid">
  <div id="a">aaaaa</div>
  <div id="d">
    <div id="b">bbbbb</div>
    <div id="c">ccccc</div>
  </div>
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:15:20