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

如何在Tailwind中动态调整Grid内Div高度,实现底部对齐?

问题描述

我用Grid布局实现了三个卡片组件,每个卡片高度随内容自动调整,但当其中一个卡片的文本内容过多时,另外两个卡片会被错误拉伸。尝试过h-max、h-full等Tailwind类都无法解决问题。需求是让每个卡片的中间内容区域自动扩展,确保所有卡片的底部始终对齐。

当前代码:

<div class="grid grid-cols-6 gap-4">
  <div class="bg-green shadow overflow-hidden sm:rounded-lg col-span-2">
      <div class="px-4 py-5 sm:px-6">
          <h3 class="text-lg leading-3 font-medium text-gray-100">24 Hours challenge</h3>
      </div>
      <div class="bg-gray-50 px-4 py-5 text-center">
          <a class="text-md font-bold text-gray-500">Ask a stranger if they would like to hear a poem you made. Then improvise a poem if they say yes</a>
      </div>
      <div class="bg-gray-100 px-4 py-1 text-center">
          <a class="text-sm font-medium text-gray-500">06:12:53 left</a>
      </div>
  </div>
  <div class="bg-green shadow overflow-hidden sm:rounded-lg col-span-2">
      <div class="px-4 py-5 sm:px-6">
          <h3 class="text-lg leading-3 font-medium text-gray-100">3 Days challenge</h3>
      </div>
      <div class="bg-gray-50 px-4 py-5 text-center">
          <a class="text-md font-bold text-gray-500">Act as if you know a stranger</a>
      </div>
      <div class="bg-gray-100 px-4 py-1 text-center">
          <a class="text-sm font-medium text-gray-500">30:07:00 left</a>
      </div>
  </div>
  <div class="bg-green shadow overflow-hidden sm:rounded-lg col-span-2">
      <div class="px-4 py-5 sm:px-6">
          <h3 class="text-lg leading-3 font-medium text-gray-100">Weekly challenge</h3>
      </div>
      <div class="bg-gray-50 px-4 py-5 text-center">
          <a class="text-md font-bold text-gray-500">Sing a song in public</a>
      </div>
      <div class="bg-gray-100 px-4 py-1 text-center">
          <a class="text-sm font-medium text-gray-500">54:06:43 left</a>
      </div>
  </div>
</div>
解决方案

给每个卡片容器添加flex flex-col类,再给中间的内容区域添加flex-grow类,让中间区域自动填充卡片的剩余空间,即可实现所有卡片底部对齐的效果。修改后的代码如下:

<div class="grid grid-cols-6 gap-4">
  <!-- 第一个卡片 -->
  <div class="bg-green shadow overflow-hidden sm:rounded-lg col-span-2 flex flex-col">
      <div class="px-4 py-5 sm:px-6">
          <h3 class="text-lg leading-3 font-medium text-gray-100">24 Hours challenge</h3>
      </div>
      <!-- 中间区域添加flex-grow占据剩余空间 -->
      <div class="bg-gray-50 px-4 py-5 text-center flex-grow">
          <a class="text-md font-bold text-gray-500">Ask a stranger if they would like to hear a poem you made. Then improvise a poem if they say yes</a>
      </div>
      <div class="bg-gray-100 px-4 py-1 text-center">
          <a class="text-sm font-medium text-gray-500">06:12:53 left</a>
      </div>
  </div>
  <!-- 第二个卡片 -->
  <div class="bg-green shadow overflow-hidden sm:rounded-lg col-span-2 flex flex-col">
      <div class="px-4 py-5 sm:px-6">
          <h3 class="text-lg leading-3 font-medium text-gray-100">3 Days challenge</h3>
      </div>
      <div class="bg-gray-50 px-4 py-5 text-center flex-grow">
          <a class="text-md font-bold text-gray-500">Act as if you know a stranger</a>
      </div>
      <div class="bg-gray-100 px-4 py-1 text-center">
          <a class="text-sm font-medium text-gray-500">30:07:00 left</a>
      </div>
  </div>
  <!-- 第三个卡片 -->
  <div class="bg-green shadow overflow-hidden sm:rounded-lg col-span-2 flex flex-col">
      <div class="px-4 py-5 sm:px-6">
          <h3 class="text-lg leading-3 font-medium text-gray-100">Weekly challenge</h3>
      </div>
      <div class="bg-gray-50 px-4 py-5 text-center flex-grow">
          <a class="text-md font-bold text-gray-500">Sing a song in public</a>
      </div>
      <div class="bg-gray-100 px-4 py-1 text-center">
          <a class="text-sm font-medium text-gray-500">54:06:43 left</a>
      </div>
  </div>
</div>

关键说明

  • flex flex-col:将卡片内部设置为垂直方向的Flex布局,使子元素能按垂直方向分配空间。
  • flex-grow:给中间内容区域添加该类后,它会自动占据卡片中除顶部标题、底部倒计时之外的所有剩余空间,从而确保所有卡片的底部始终对齐,不受中间内容多少的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 06:27:25