【问题标题】:Text Won't Overlap Image and Moves up When Resizing Browser调整浏览器大小时文本不会与图像重叠并向上移动
【发布时间】:2020-10-15 09:14:15
【问题描述】:

我正在尝试使内部的文本与链接内部的图像重叠。问题是我尝试使用top。它可以工作,但是如果我尝试调整浏览器的大小,它会向上移动并且不会停留在图像中间。

    .background1 {
      padding: 40px 20px;
      max-width: 500px;
      margin: 20px;
      transition: 0.5s;
    }

    .background1 a {
      text-decoration: none;
      color: white;
    }

    .background1 a .overlay h2 {
      position: relative;
      text-align: center;
    }

    .background1 img {
      width: 100%;
      border: 3px solid grey;
      transition: 0.5s;
    }

   .overlay{
     color: white;
     text-shadow: 0 2px 4px black;
    }
  <div class="content">
    <div class="background1">
      <a href="#">
        <img src="icon1.jpg"></a>
      <div class="overlay">
        <h2>Web Design</h2>
      </div>
      </a>
    </div>
    <div class="background1">
      <a href="#">
        <img src="icon2.jpg"></a>
      <div class="overlay">
        <h2>JAVA</h2>
      </div>
      </a>
    </div>
    <div class="background1">
      <a href="#">
        <img src="icon3.jpg"></a>
      <div class="overlay">
        <h2>CSS</h2>
      </div>
      </a>
    </div>
    <div class="background1">
      <a href="#">
        <img src="icon4.jpg"></a>
      <div class="overlay">
        <h2>HTML</h2>
      </div>
      </a>
    </div>
</div>

如果我就这样离开它。 h2 文本将位于图像的底部中心。 如果我添加top: -120px;,那么文本会转到图像的中间。但是,当我尝试调整大小以查看它在手机中的外观时,它开始远离图像。

我该如何解决这个问题?另外,我想把它保存在css中。我还在学习,所以我不想深入一些奇怪的功能或编码。

【问题讨论】:

    标签: html css position text-alignment


    【解决方案1】:

    我想,这就是你想要的。您需要将叠加层inside 放置在锚点中并将其绝对定位,使其完全覆盖图像。然后在此叠加层中居中放置文本。当您调整视口大小时,文本将停留在中间,但当然它会相对于图像变得更大。 (如有必要,可以通过媒体查询进行调整)。

    * {
      box-sizing: border-box;
    }
    
    .content {
      display: flex;
      flex-wrap: wrap;
      background: blanchedalmond;
    }
    
    .background1 {
      width: 40%;
      background: oldlace;
      margin: 10px;
    }
    
    .background1 a {
      text-decoration: none;
      color: white;
      padding: 40px;
    }
    
    .anchor {
      border: 3px solid grey;
      position: relative;
      display: inline-block;
      text-align: center;
      box-shadow: -2px 2px 5px 2px rgba(0, 0, 0, 0.2);
    }
    
    img {
      width: 100%;
      vertical-align: middle;
    }
    
    .overlay {
      position: absolute;
      left: 0;
      top: 0;
      bottom: 0;
      right: 0;
      display: flex;
    }
    
    h2 {
      margin: auto;
    }
    <div class="content">
      <div class="background1">
        <a class="anchor" href="#">
          <img src="https://i.guim.co.uk/img/media/a1e119a48076615b6502ceccd369bc72bcf5d93a/0_374_5616_3370/master/5616.jpg?width=1200&height=1200&quality=85&auto=format&fit=crop&s=68a05c30b5154497160d38f176556727">
          <div class="overlay">
            <h2>Web Design</h2>
          </div>
        </a>
      </div>
      <div class="background1">
        <a class="anchor" href="#">
          <img src="https://i.guim.co.uk/img/media/a1e119a48076615b6502ceccd369bc72bcf5d93a/0_374_5616_3370/master/5616.jpg?width=1200&height=1200&quality=85&auto=format&fit=crop&s=68a05c30b5154497160d38f176556727">
          <div class="overlay">
            <h2>JAVA</h2>
          </div>
        </a>
      </div>
      <div class="background1">
        <a class="anchor" href="#">
          <img src="https://i.guim.co.uk/img/media/a1e119a48076615b6502ceccd369bc72bcf5d93a/0_374_5616_3370/master/5616.jpg?width=1200&height=1200&quality=85&auto=format&fit=crop&s=68a05c30b5154497160d38f176556727">
          <div class="overlay">
            <h2>CSS</h2>
          </div>
        </a>
      </div>
      <div class="background1">
        <a class="anchor" href="#">
          <img src="https://i.guim.co.uk/img/media/a1e119a48076615b6502ceccd369bc72bcf5d93a/0_374_5616_3370/master/5616.jpg?width=1200&height=1200&quality=85&auto=format&fit=crop&s=68a05c30b5154497160d38f176556727">
          <div class="overlay">
            <h2>HTML</h2>
          </div>
        </a>
      </div>
    </div>

    【讨论】:

    • 它对我不起作用。一切都变得一团糟。问题是我没有在 html 中添加更多代码。背景 1 旁边水平方向还有四张图像。
    • 您可能需要将这些添加到问题中。上面的 sn-p 本身实际上可以在你的机器上运行,我接受吗?
    • 是的,我添加了一个需要放在锚标签上的“锚”类。应该是现在。还为我自己的娱乐添加了一些盒子阴影。
    • 天啊,我们做朋友吧!这很漂亮,而且效果很好!
    • 很高兴听到这个消息。 :)
    猜你喜欢
    • 2017-10-19
    • 1970-01-01
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多