Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Display text when hover on image with opacity

Tags:

css

I have problem when hovering on image, background color of image not shows, only it works if hover on bottom of image. Seems it have a conflict with text that i placed over image.

Here is example: https://jsfiddle.net/kani339/ed7g6hjp/6/

HTML:

<section>
  <div class="photo-gallery">

    <div class="layout">
      <div class="img-block">
        <img src="http://hdwpro.com/wp-content/uploads/2015/12/Widescreen-Image-1366x768.jpg" alt="">
      </div>
      <div class="text-overlay">
        <h2>Header Text</h2>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officia, sed, molestias autem reprehenderit iure hic quia debitis consequatur tempora numquam quasi amet dolor, distinctio porro magnam dolorum. Tenetur, omnis, nihil.</p>
        <button>Learn More</button>
      </div>
    </div>

    <div class="layout">
      <div class="img-block">
        <img src="http://hdwpro.com/wp-content/uploads/2015/12/Widescreen-Image-1366x768.jpg" alt="">
      </div>
      <div class="text-overlay">
        <h2>Header Text</h2>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officia, sed, molestias autem reprehenderit iure hic quia debitis consequatur tempora numquam quasi amet dolor, distinctio porro magnam dolorum. Tenetur, omnis, nihil.</p>
        <button>Learn More</button>
      </div>
    </div>

    <div class="layout">
      <div class="img-block">
        <img src="http://hdwpro.com/wp-content/uploads/2015/12/Widescreen-Image-1366x768.jpg" alt="">
      </div>
      <div class="text-overlay">
        <h2>Header Text</h2>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officia, sed, molestias autem reprehenderit iure hic quia debitis consequatur tempora numquam quasi amet dolor, distinctio porro magnam dolorum. Tenetur, omnis, nihil.</p>
        <button>Learn More</button>
      </div>
    </div>

    <div class="layout">
      <div class="img-block">
        <img src="http://hdwpro.com/wp-content/uploads/2015/12/Widescreen-Image-1366x768.jpg" alt="">
      </div>
      <div class="text-overlay">
        <h2>Header Text</h2>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officia, sed, molestias autem reprehenderit iure hic quia debitis consequatur tempora numquam quasi amet dolor, distinctio porro magnam dolorum. Tenetur, omnis, nihil.</p>
        <button>Learn More</button>
      </div>
    </div>

    <div class="layout">
      <div class="img-block">
        <img src="http://hdwpro.com/wp-content/uploads/2015/12/Widescreen-Image-1366x768.jpg" alt="">
      </div>
      <div class="text-overlay">
        <h2>Header Text</h2>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officia, sed, molestias autem reprehenderit iure hic quia debitis consequatur tempora numquam quasi amet dolor, distinctio porro magnam dolorum. Tenetur, omnis, nihil.</p>
        <button>Learn More</button>
      </div>
    </div>

    <div class="layout">
      <div class="img-block">
        <img src="http://hdwpro.com/wp-content/uploads/2015/12/Widescreen-Image-1366x768.jpg" alt="">
      </div>
      <div class="text-overlay">
        <h2>Header Text</h2>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officia, sed, molestias autem reprehenderit iure hic quia debitis consequatur tempora numquam quasi amet dolor, distinctio porro magnam dolorum. Tenetur, omnis, nihil.</p>
        <button>Learn More</button>
      </div>
    </div>

  </div>
</section>

CSS:

.layout {
    background: red;
    opacity: 1;
    height: 250px;
    width: 33%;
    float: left;
}

.img-block img {
    height: 250px;
    width: 100%;
    float: left;
}

.img-block img:hover{
    opacity: 0.5;
    cursor:pointer;
}

.text-overlay {
  position:relative;
  text-align: center;
  font-size:14px;
  bottom: 220px;
  color:white;
  visibility: hidden;
}

.layout:hover .text-overlay {
    visibility: visible;
    cursor:pointer;
}
like image 732
Andrew Avatar asked Feb 12 '26 22:02

Andrew


1 Answers

You should set :hover on the container not the img tag itself.

.layout:hover .text-overlay {
  visibility: visible;
}
.layout:hover .img-block img {
  opacity: 0.5;
}

To fix the hover problem when switching between top and bottom items, add this:

.layout {
  ...
  overflow: hidden;
}

jsFiddle

like image 138
Stickers Avatar answered Feb 17 '26 04:02

Stickers



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!