简体   繁体   English

将背景图像更改为悬停时的颜色

[英]Changing background image to color on hover

I'm trying to change the background of a div from an image to color when mouse hovers over it. 当鼠标悬停在div上时,我正在尝试将div的背景从图像更改为颜色。 I have managed to almost accomplish it but the color also goes over the text inside the div. 我已经差不多完成了,但是颜色也超出了div内的文本。

HTML: HTML:

<div>
    <h3>LIPSUM DOLORES DILORES DUM DUM</h3>
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting 
    industry. Lorem Ipsum has been the industry's standard dummy text ever
    since the 1500s, when an unknown printer took a galley of type and
    scrambled it to make a type specimen book. It has survived not only five
    centuries, but also the leap into electronic typesetting, remaining 
    essentially unchanged.</p>
</div>

CSS: CSS:

div {
  background-image: url("https://static.pexels.com/photos/127028/pexels-photo-127028.jpeg");
  background-size: cover;
  width: 300px;
  height: 300px;
}

div:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 300px;
  height: 300px;
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  transition: all 0.8s;
}

div:hover:before {
  opacity: 1;
  background: rgba(0, 0, 0, 1);
  transition: all 0.8s;
}

div h3,
div p,
body {
  margin: 0;
  padding: 0;
}

div h3,
div p {
  color: red;
  z-index: 1000;
}

https://jsfiddle.net/j65k4LtL/ https://jsfiddle.net/j65k4LtL/

you can do it like this 你可以这样

 .outer { background-image: url("https://static.pexels.com/photos/127028/pexels-photo-127028.jpeg"); background-size: cover; width: 300px; height: 300px; } .outer:before { content: ""; position: absolute; top: 0; left: 0; width: 300px; height: 300px; background-color: rgba(0, 0, 0, 0.6); opacity: 0; transition: all 0.8s; } .outer:hover:before { opacity: 1; } .inner{ position: relative; } div h3, div p, body { margin: 0; padding: 0; } div h3, div p { color: red; z-index: 1000; } 
 <div class="outer"> <div class="inner"> <h3> LIPSUM DOLORES DILORES DUM DUM </h3> <p> Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. </p> </div> </div> 

create inner container and position it as relative. 创建内部容器并将其相对放置。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM