【问题标题】:CSS card overlay with image and text带有图像和文本的 CSS 卡覆盖
【发布时间】:2016-12-31 22:51:55
【问题描述】:

我正在尝试创建一个覆盖整个 div/card 的叠加层。我有三张牌,我想在活动时翻黑。由于某种原因,我无法选择整个 div。

HTML:

  <div class="item "> 
  <div class="overlay">
  <img src="http://placehold.it/600x350">
  <h2>Title</h2>
  <p> Text</p>
  </div><div class="overlay"> </div> 
  </div>

和 CSS:

 .item {

    padding: 0px 0;
  margin: 1%;
    border-radius: 2px;
  flex: 1 250px;
  height: auto;
  text-align: center;
  background: linear-gradient(0deg, #efefef, #ffffff);
}

.overlay {
  position: relative;
   background-color: rgba(0,0,0,0)
   -webkit-transition: opacity 1s ease-in-out;
   -moz-transition: opacity 1s ease-in-out;
   -o-transition: opacity 1s ease-in-out;
   transition: opacity 1s ease-in-out;
}


.overlay:hover {
  opacity: 1;
  background-color: rgba(0,0,0,1);

}

CODEPEN EXAMPLE

【问题讨论】:

    标签: html css hover overlay


    【解决方案1】:

    div.item具有一定的大小和形状。将其设置为 relative 以便接下来的事情可以正常工作

    制作 div.overlay position:absolute - 这将覆盖它,但它没有大小,所以它仍然是不可见的。

    然后,将 div.overlay 设为其父级 (div.item) 的全高。

    当使其可见时(在 :hover),它将是 .item 的 100% 高度/宽度,并将覆盖它。

    body {background-color: #C70025;}
    
    img {width: 100%;}
    
    #container {width:90%;margin:0 auto;display:flex;flex-wrap:wrap;
    justify-content:space-between;}
    
    .item {color:#000;padding:0px 0;margin:1%;border-radius:2px;flex:1 250px;height:auto;text-align:center;background:linear-gradient(0deg, #efefef, #ffffff);}
    
    .item{position:relative;}
    .overlay {
      position:absolute;
      top:0;left:0;right:0;bottom:0;
       background-color: rgba(0,0,0,0)
       -webkit-transition: opacity 1s ease-in-out;
       -moz-transition: opacity 1s ease-in-out;
       -o-transition: opacity 1s ease-in-out;
       transition: opacity 1s ease-in-out;
    }
    .overlay:hover {
      opacity: 1;
      background-color: rgba(0,0,0,1);
    
    }
    <div id="container">
       <div class="item "> 
          <img src="http://placehold.it/600x350">
          <h2>Title</h2>
          <p> Text</p>
          <div class="overlay"> </div> 
       </div>
       <div class="item">
          <img src="http://placehold.it/600x350">
          <h2> Title </h2>
          <p>Text</p>
          <div class="overlay"> </div> 
       </div>
       <div class="item">
          <img src="http://placehold.it/600x350">
          <h2> Title </h2>
          <p>Text</p>
          <div class="overlay"> </div> 
       </div>
    </div>

    【讨论】:

    • 是的,这很可能是 OP 想要实现的。我删除了我的答案。
    • 你好,弗雷德。通常你会做到,太好了,这次我很幸运。 :)
    • @Fred-ii- 哦,刚刚看到您与 Dylan Moran 的个人资料链接。在 Mtl 长大 - 最喜欢的城市,Black Books 是一个经典 很棒的链接 - 谢谢,新年快乐!
    • 是的,我不太明白他们想要做什么,你已经搞定了 ;-) 是的,迪伦是我最喜欢的喜剧演员之一,从我第一次见到他就喜欢他。也看过乔治·卡林一次;很棒的表演。我想你可以告诉我为什么我可以成为一个小丑;-) 也祝你干杯和新年快乐 :-)
    猜你喜欢
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 2020-02-07
    • 1970-01-01
    相关资源
    最近更新 更多