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

如何用display: grid实现指定布局?需保留<section>结构

实现B项与A项水平对齐的Grid布局方案

你需要让右侧的"Price summary"卡片(B项)与左侧的"Content A"卡片(A项)水平对齐,同时保持<section>标签独立,这里有个优雅且兼容主流浏览器的方案:

核心思路

利用外层Grid的行划分,让右侧容器从第二行开始布局;左侧容器占据全部行,并通过内部Grid管理自身内容,既保留语义化结构,又实现精准对齐。

修改后的CSS代码

.card {
  border: 1px solid #E2E3E3;
  border-radius: 4px;
  background-color: #FFF;
  padding: .5rem;
}

.checkout-form {
  padding: 1.5rem;
  background-color: #f9f9f9;
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 1rem;
  grid-template-rows: auto auto 1fr; /* 划分三行:文本行、A卡片行、X内容行 */
}

.checkout-form__main {
  grid-row: 1 / -1; /* 左侧容器占据所有行 */
  display: grid;
  gap: 1rem; /* 内部section之间的间距 */
}

.checkout-form__cost {
  grid-row: 2 / -1; /* 右侧容器从第二行开始,与A卡片对齐 */
  align-self: start; /* 确保卡片顶部对齐 */
}

效果说明

  • 外层Grid通过grid-template-rows划分出对应文本、A卡片、X内容的行区域
  • 左侧checkout-form__main占据全部行,内部用Grid管理两个子section,自动适配内容高度
  • 右侧checkout-form__cost从第二行开始布局,刚好与左侧的A卡片顶部对齐,完美匹配需求
  • 所有主流浏览器(Chrome、Firefox、Safari、Edge)均支持该Grid特性,无需兼容垫片

保留的HTML结构(无需修改)

<form class="checkout-form">
    <div class="checkout-form__main">
        <section>
            <section>
                <p>Products info</p>
                <article class="card">
                  Content A
                </article>
            </section>
            <section>
                <p>Customer info</p>
                <article class="card">
                  Content X
                </article>
            </section>
        </section>
    </div>
    <div class="checkout-form__cost">
        <section class="card">
           Price summary
        </section>
    </div>
</form>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:15:50