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

如何让文本居中对应图片上方?求链接下移问题的替代CSS解法

不用display:contents的替代方案

嘿,我有个更直观且兼容性更好的方案,既能实现文本与对应图片居中对齐的效果,又完全不需要用到display:contents。核心思路是把每组「文本+图片+链接」打包成独立的容器,让布局逻辑更清晰,也能解决原结构里的对齐问题。

修改后的HTML结构

<div class="choiceImage">
  <div class="item">
    <p>I'm looking for..</p>
    <a href="#"><img alt="want something" src="image/want-something.jpg"></a>
  </div>
  <div class="item">
    <p>I offer something..</p>
    <a href="#"><img alt="offer something" src="image/offer-something.jpg"></a>
  </div>
</div>

调整后的CSS样式

.choiceImage { 
  margin: 10px; 
  width: 790px; 
  /* 去掉固定height,让内容自适应更灵活 */
  display: flex; 
  justify-content: space-around; 
  align-items: center;
}

.choiceImage .item {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.choiceImage img { 
  width: 350px; 
  height: 350px; 
  margin: 20px 0; 
  border-radius: 2px; 
}

.choiceImage p { 
  background-color: beige; 
  border-radius: 10px; 
  color: black; 
  width: 270px; 
  font-size: 25px; 
  font-weight: bold; 
  text-align: center; 
  padding: 8px 0; /* 加一点内边距让文本更舒服 */
}

.choiceImage img:hover { 
  opacity: 0.5; 
}

方案优势

  • 完全避开display:contents的兼容性风险(这个属性在部分旧浏览器中支持不佳)
  • 语义化更强:每个文本和对应的图片是一个独立的功能单元,后期维护修改更方便
  • 借助Flex布局的column方向,自然实现了文本在图片上方居中对齐的需求
  • 外层Flex保证了两组内容的均匀分布,和原需求的布局效果一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 14:27:57