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

如何实现每张图片下方标签每行最多3个(仅HTML+CSS)

标签布局实现方案

先给你一套适配需求的代码,你可以根据自己的实际HTML结构调整选择器:

示例HTML结构

如果你的结构和下面不一样,只需要对应修改CSS选择器即可:

<div class="gallery">
  <div class="image-group">
    <img src="your-image.jpg" alt="图片描述">
    <div class="tags">
      <span class="tag">标签1</span>
      <span class="tag">标签2</span>
      <span class="tag">标签3</span>
      <span class="tag">标签4</span>
    </div>
  </div>
  <!-- 重复更多图片组 -->
</div>

CSS实现代码

/* 小屏幕默认样式(移动端/平板) */
.gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  padding: 1rem;
}

.image-group {
  text-align: center;
}

.image-group img {
  width: 100%;
  height: auto;
}

.tags {
  margin-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}

.tag {
  /* 满足至少一条边框的要求,这里用全边框,也可以只设单条比如border-bottom */
  border: 1px solid #666;
  padding: 0.3rem 0.8rem;
  border-radius: 4px;
}

/* 1280px断点后的桌面端样式 */
@media (min-width: 1280px) {
  /* 图片组每行3组 */
  .gallery {
    grid-template-columns: repeat(3, 1fr);
  }

  /* 标签每行最多3个:用grid固定3列,超出自动换行 */
  .tags {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
  }

  /* 标签数量不足3个时居中显示 */
  .tag {
    justify-self: center;
  }
}

关键说明

  • 图片组用Grid布局的repeat(3, 1fr),能自动平分每行空间,实现每行3组的效果
  • 标签在断点后改用Grid固定3列,不管标签数量多少,每行最多只会显示3个,多余的自动换到下一行
  • 标签的边框直接通过border属性设置,你可以根据需求改成单条边框(比如border-bottom: 1px solid #666)
  • 如果你的标签是用<ul><li>结构,只需要把.tags换成.tags ul,.tag换成.tags li,逻辑完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 18:12:21