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

如何让图片适配Grid Layout布局?解决网格高度不一致问题

布局问题与Grid布局规则咨询

我正在创建如下布局:
目标布局

当前代码如下:

<div class="tour-grid"> 
        
          <div class="tgItem tg-left"> 
            <a href="" class="tgCard">
              <div class="tgCard__image ro-4">
                <img class="ro-4 js-lazy loaded" src="img/tours/3.png" alt="image" data-ll-status="loaded">
              </div> 
            </a>

          </div>

          <div class="tgItem tgChild"> 
            <a href="" class="tgCard">
              <div class="tgCard__image ro-4">
                <img class="ro-4 js-lazy loaded" src="img/blog/2/2.png" alt="image" data-ll-status="loaded">
              </div>  
            </a> 
          </div>

          <div class="tgItem tgChild"> 
            <a href="" class="tgCard">
              <div class="tgCard__image ro-4">
                <img class="ro-4 js-lazy loaded" src="img/blog/2/3.png" alt="image" data-ll-status="loaded">
              </div> 
            </a> 
          </div>
          
          <div class="tgItem tgChild"> 
            <a href="" class="tgCard">
              <div class="tgCard__image ro-4">
                <img class="ro-4 js-lazy loaded" src="img/tours/2.png" alt="image" data-ll-status="loaded">
              </div> 
            </a> 
          </div> 
        </div>

当前遇到的问题:

  • 网格高度不一致,图片无法适配div容器
  • 右侧三个div的总高度需要和左侧列完全对齐(效果参考:对齐效果参考)

想请教Grid布局的规则:是否需要把右侧三个tgChild包裹成一个单独的容器?(参考结构:参考容器结构)


解决办法

1. 要不要包裹右侧三个元素?

不用额外套容器,CSS Grid本身就支持这种布局,直接通过行列规则就能实现对齐。

2. 关键CSS代码

.tour-grid {
  display: grid;
  grid-template-columns: 1fr 1fr; /* 左右两列平分宽度 */
  gap: 16px; /* 列之间的间距,可自行调整合适数值 */
}

.tg-left {
  grid-row: span 3; /* 让左侧元素跨3行,刚好和右侧3个元素的总高度对齐 */
}

.tgCard__image {
  height: 100%; /* 图片容器占满父元素高度 */
}

.tgCard__image img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 图片按比例填充,避免拉伸变形,超出部分自动裁剪 */
  border-radius: 4px; /* 对应原有ro-4类的圆角样式 */
}

3. 代码说明

  • grid-template-columns: 1fr 1fr:将整个网格划分为等宽的两列
  • grid-row: span 3:让左侧元素占据3行高度,正好匹配右侧3个元素的总高度
  • object-fit: cover:解决图片适配问题,保证图片比例正确且填满容器
  • 给图片容器设置height: 100%,确保它完全撑满父元素的高度空间

调整后,右侧三个元素会自动均分左侧的高度,图片也能完美适配容器,实现你想要的对齐效果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 11:25:26