【问题标题】:Responsive text overlay on flexbox image gallery [duplicate]flexbox图像库上的响应式文本覆盖[重复]
【发布时间】:2017-11-07 17:14:06
【问题描述】:

所以我有这个代码来显示图片库。我想在每个图像的中间放置“box-text”类。但是如果我想使用 position: relative 它不起作用。无论我如何在 css 中设置 top 属性,文本都不想高于图像的底部。

<div class="container">  
  <div class="box">
       <img src="1.jpg" class="img-responsive">
       <div class="box-text"><h2>Some text</h2><h3>other text</h3></div>
   </div>

     <div class="box">
       <img src="2.jpg" class="img-responsive">
       <div class="box-text"><h2>Some text</h2><h3>other text</h3></div>
     </div>

    <div class="box">
       <img src="3.jpg" class="img-responsive">
       <div class="box-text"><h2>Some text</h2><h3>other text</h3></div>
     </div>
</div>

我的 CSS 样式:

.container{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
   }

.box img{
    z-index: 1;
  }


.box-text{
  position: relative;
  top:50%;
  left: 50%;
  z-index: 2;
}

【问题讨论】:

    标签: html css flexbox image-gallery


    【解决方案1】:

    使用 position: absolute 代替?您还可以使用 transform: translate 来帮助居中:

    .box {
      position: relative;
    }
    .box-text{
      position: absolute;
      top:50%;
      left: 50%;
      z-index: 2;
      transform: translate(-50% -50%);
    }
    

    【讨论】:

    • Flex 也可以为你做居中,如果你把它带到围绕文本元素的 'box' 类。如果你这样做,你可能会失去 left 和 top 并完全转换并让 flex 完成所有工作。
    • 这是我的第一个想法,但我认为他需要文本来覆盖内联图像。
    • 是的,这仍然有效,您保持绝对定位不变,但不指定左侧和顶部 - 无论如何都可以在 Firefox 中进行快速测试。
    • 我还在 box-text 类上添加了 text-align:center 只是为了更好地衡量 - 不过可能不是必需的。
    • 我不知道为什么,但它将我的文本移动到图片的右下角而不是中心。
    猜你喜欢
    • 1970-01-01
    • 2020-06-25
    • 2020-12-11
    • 2017-05-27
    • 2022-10-01
    • 1970-01-01
    • 2015-07-30
    • 2015-10-15
    • 2014-03-03
    相关资源
    最近更新 更多