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

如何在CSS Grid中居中图片?如何实现图片左对齐垂直居中、文字居右?

嘿,我来帮你搞定这两个CSS布局问题,一步步说清楚哈~

1. 如何在CSS Grid布局中实现图片居中?

其实分两种场景,咱们分别说:

  • 场景一:图片是Grid容器的直接子元素
    最简单的方法是给Grid容器设置place-items: center——这是align-items(垂直居中)和justify-items(水平居中)的简写,一步到位。示例代码:

    .grid-container {
      display: grid;
      place-items: center; /* 同时控制水平+垂直居中 */
      width: 400px;
      height: 300px;
      border: 1px solid #eee;
    }
    

    对应的HTML:

    <div class="grid-container">
      <img src="http://placehold.it/350x150.png" alt="示例图片">
    </div>
    
  • 场景二:图片在Grid项目的内部
    如果图片包在一个Grid项目(比如<div>)里,那给这个项目也设置Grid布局,再用place-items: center就行,当然用Flex也能实现,但既然咱们聊Grid,就用Grid的方式:

    .grid-container {
      display: grid;
      grid-template-columns: 1fr;
      width: 400px;
      height: 300px;
      border: 1px solid #eee;
    }
    .grid-item {
      display: grid;
      place-items: center;
      background: #f8f8f8;
    }
    

    HTML:

    <div class="grid-container">
      <div class="grid-item">
        <img src="http://placehold.it/350x150.png" alt="示例图片">
      </div>
    </div>
    
2. 如何实现图片在左侧垂直居中、文字在右侧的布局?

看你给的现有代码,咱们直接在这个基础上修改就行,核心是给每个pricing1box-div内部用Grid来排列图片和文字,比用float更稳定:

修改后的CSS代码

.pricing1box {
  display: grid;
  grid-template-columns: repeat(auto-fit, 300px);
  color: #444;
  margin-top: 150px;
  justify-content: center;
  gap: 20px; /* 加个项目间距,看起来更舒服 */
}
.pricing1box-div {
  background-color: orange;
  color: #fff;
  border-radius: 5px;
  font-size: 150%;
  /* 关键:给项目内部设置Grid布局 */
  display: grid;
  grid-template-columns: 100px 1fr; /* 图片列固定100px,文字列占剩余空间 */
  align-items: center; /* 让图片和文字垂直居中对齐 */
  padding: 15px; /* 加内边距,避免内容贴容器边缘 */
}
/* 去掉原来的float,Grid不需要浮动来排列元素 */
.pricing1box-div img {
  width: 100px;
  border-radius: 4px; /* 可选:给图片加个圆角,更美观 */
}
/* 给文字加个左边距,和图片拉开距离 */
.pricing1box-text {
  margin-left: 15px;
}

修改后的HTML代码

<div class="pricing1box">
  <div class="pricing1box-div">
    <img src="http://placehold.it/350x150.png" alt="服务图标">
    <div class="pricing1box-text">
      这里是你的定价文字内容,比如基础套餐、服务介绍之类的,现在会在图片右侧垂直居中显示啦
    </div>
  </div>
  <!-- 可以复制多个这样的div,展示不同的定价项 -->
  <div class="pricing1box-div">
    <img src="http://placehold.it/350x150.png" alt="服务图标">
    <div class="pricing1box-text">
      进阶套餐:包含更多功能,性价比拉满~
    </div>
  </div>
</div>

这样修改后,每个定价卡片里的图片都会在左侧垂直居中,文字在右侧对齐,而且布局非常稳定,不会出现浮动带来的各种问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:35:52