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

如何用CSS Flex实现卡片内图片底部对齐?

问题描述

我是编程新手(感谢您的耐心解答!),正在完成训练营的作品集项目。我希望在卡片顶部显示标题和文本,图片在下方对齐。我们使用CSS Flex布局,目前因卡片间文本长度不同,导致图片错位,以下是截图:

图片错位的截图

请问如何保持标题+文本在顶部,同时让图片对齐到卡片底部?

当前代码

CSS

.card-container {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  margin: auto auto 60px auto;
  max-width: 100vw;
  /* 1000px; */
}

.card {
  background-color: #f2f2f2;
  width: 40%;
  margin: 20px;
}

.card a:hover {
  text-decoration: none;
}

.card-copy {
  padding: 0 20px 20px 20px;
}

HTML

<section>

  <h2 class="center">Apparel Design</h2>

  <div class="card-container">
    <!--Card 1-->
    <div class="card">
      <a href="">
        <div class="card-copy">
          <h3 class="margin-bottom_five">Design Process</h3>
          <p class="margin-top_zero">Copy here about my design process overview</p>

        </div>
        <img src="https://via.placeholder.com/400">

      </a>
    </div>

    <!--Card 2-->
    <div class="card">
      <a href="">
        <div class="card-copy">
          <h3 class="margin-bottom_five">Professional Work</h3>
          <p class="margin-top_zero">Copy here about my most recent professional work</p>

        </div>
        <img src="https://via.placeholder.com/400">

      </a>
    </div>

    <!--Card 3-->
    <div class="card">
      <a href="">
        <div class="card-copy">
          <h3 class="margin-bottom_five">Exploratory Projects</h3>
          <p class="margin-top_zero">Copy here about my recent stretch projects</p>

        </div>
        <img src="https://via.placeholder.com/400">

      </a>
    </div>
  </div>
</section>
解决方案

只需对现有CSS做3处调整,就能实现标题文本固定在顶部、图片对齐到卡片底部的效果:

  1. 让.card成为垂直方向的flex容器,确保所有卡片高度统一
  2. 让卡片内的链接也成为垂直flex容器,并占满卡片的可用空间
  3. 给文本区域.card-copy设置自动底部外边距,把图片挤到最下方

修改后的CSS代码:

.card-container {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  margin: auto auto 60px auto;
  max-width: 100vw;
  /* 1000px; */
}

.card {
  background-color: #f2f2f2;
  width: 40%;
  margin: 20px;
  /* 新增:卡片设为垂直flex容器 */
  display: flex;
  flex-direction: column;
}

.card a {
  /* 新增:链接设为垂直flex容器,占满卡片空间 */
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.card a:hover {
  text-decoration: none;
}

.card-copy {
  padding: 0 20px 20px 20px;
  /* 新增:自动占据上方空间,将图片推到底部 */
  margin-bottom: auto;
}

调整后,无论卡片内文本长度差异多大,图片都会固定在卡片底部,标题和文本始终保持在顶部位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:50:34