【问题标题】:Zoom in image while text is overlapping it (in the image)文本重叠时放大图像(在图像中)
【发布时间】:2018-05-11 02:14:51
【问题描述】:

好的,我有这个:

我想在 Recommend 1、Recommend 2 中添加图片……我已经使用 <img> 标签实现了这一点。但是我有两个问题:

1) 它不适合正方形,它只是设置图像的高度和宽度。 (见这张图:https://imgur.com/a/Hkm6ZRy

2) 我需要将文本放在图像/容器的底部(就像现在一样。)我尝试使用 position: absolute; 修复此问题,但我得到了这个 - https://imgur.com/a/9OdDF1I。由于某种原因,图片位于右上角。

我没有使用 css 背景图片,因为当用户将鼠标悬停在图片上时我需要缩放效果。

这是 HTML(用于 4 个推荐元素):

<div class="col-xl-9 col-md-9 sec-three-right bg-primary">
<div class="container-fluid h-100">
    <div class="row h-100 text-center">
        <div class="col-xl-6 d-flex flex-column zoom">
            <img class="img-fluid" src="img/pickone.jpeg" alt="pickone" style="width:100%;">
            <div class="mt-auto right-pick">Recommend 1</div>
        </div>
        <div class="col-xl-6 bg-success d-flex flex-column">
            <div class="mt-auto right-pick"> Recommend 2 </div>
        </div>
        <div class="col-xl-6 bg-danger d-flex flex-column">
            <div class="mt-auto right-pick"> Recommend 3 </div>
        </div>
        <div class="col-xl-6 bg-info d-flex flex-column">
            <div class="mt-auto right-pick"> Recommend 4 </div>
        </div>
    </div>
</div>

这是 CSS:

.sec-three-left {
    padding-left: 0;
    padding-right: 0;
}

.sec-three-right {
    padding-left: 0;
    padding-right: 0;
}    

.right-pick {
     margin-bottom: 25px;
     font-size: 25px;
     letter-spacing: 0.8px;
     color: white;
     text-shadow: 2.5px 2.5px black;
}

 .zoom {
      position: relative;
      overflow: hidden;
 }

 .zoom:hover img {
      transform: scale(1.1);
      -moz-transform: scale(1.1);
      -webkit-transform: scale(1.1);
  }

  .zoom img {
       transition: all 0.4s;
       -moz-transform: all 0.4s;
       -webkit-transform: all 0.4s;
   }

这里是 JSFiddle:https://jsfiddle.net/prozik/jvneLe9e/

我希望它看起来像这样:

我正在使用 Bootstrap v4.1.0 和 jQuery 3.3.1。

【问题讨论】:

    标签: html css twitter-bootstrap bootstrap-4


    【解决方案1】:

    position: absolute; 解决了我的问题: 这是 HTML:

     <div class="col-xl-9 col-md-9 sec-three-right">
        <div class="container-fluid h-100">
            <div class="row h-100 text-center">
                <div class="col-xl-6 d-flex flex-column zoom">
                    <img class="img-fluid" src="img/pickone.jpeg" alt="pickone">
                    <div class="mt-auto right-pick">Recommend 1</div>
                </div>
                <div class="col-xl-6 d-flex flex-column zoom">
                    <img class="img-fluid" src="img/pickone.jpeg" alt="pickone">
                    <div class="mt-auto right-pick"> Recommend 2 </div>
                </div>
                <div class="col-xl-6 d-flex flex-column zoom">
                    <img class="img-fluid" src="img/pickone.jpeg" alt="pickone">
                    <div class="mt-auto right-pick"> Recommend 3 </div>
                </div>
                <div class="col-xl-6 d-flex flex-column zoom">
                    <img class="img-fluid" src="img/pickone.jpeg" alt="pickone">
                    <div class="mt-auto right-pick"> Recommend 4 </div>
                </div>
            </div>
        </div>
    </div>
    

    还有 CSS:

    .right-pick {
        position: absolute;
        font-size: 25px;
        letter-spacing: 0.8px;
        color: white;
        text-shadow: 2.5px 2.5px black;
        bottom: 15px;
        text-align: center;
        width: 100%;
    }
    

    这是结果:

    【讨论】:

      【解决方案2】:

      我已经解决了。您还必须从 .col 类中删除默认填充。

      .right-pick {
          position:absolute;
          bottom :20px;
          left: 50%;
          transform: translateX(-50%);
          font-size: 25px;
          letter-spacing: 0.8px;
          color: white;
          text-shadow: 2.5px 2.5px black;
      }
      

      固定代码:-

      https://jsfiddle.net/jvneLe9e/1/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-18
        • 2021-07-30
        • 2011-12-13
        • 1970-01-01
        相关资源
        最近更新 更多