将图像悬停在另一个图像上
hover image over another image
我对很可能很简单的事情感到困惑,但我无法弄清楚。当我将鼠标悬停在图像 1 上时,我希望图像 2 覆盖图像 1。
因此,目标是将图像 1 与包含半透明颜色渐变的图像 2 重叠。我知道这可以通过纯 CSS 以某种方式实现,但我需要这种方式。
下面的 CSS 代码取自另一个 Typo3 CMS 网站并且可以正常工作。
但是,我似乎无法让它在那个 Typo3 网站的另一个 part/element 上运行,我什至无法让它在像这个这样的简单基本 HTML 页面上运行。
<!DOCTYPE html>
<html>
<body>
<style>
.container {
height: 300px;
width: 500px;
position: relative;
background-color: red;
}
img {
position: relative;
height: 100%;
width: 100%;
}
.container .hover-second-image-over-first-image:hover {
width:100%;
height:100%;
background-image:url(image_02.jpg);
background-position:top left;
background-repeat: no-repeat;
background-size:100%;
position:absolute;
opacity:0;
-webkit-transition: all 0.4s ease;
-moz-transition: all 0.4s ease;
-o-transition: all 0.4s ease;
transition: all 0.4s ease;
}
</style>
<div class="container">
<div class="hover-second-image-over-first-image"></div>
<img src="image_01.jpg" />
</div>
</body>
</html>
编辑:
好的,所以 "z-index:10;" 帮我修好了。此代码在这里有效:
.container {
height: 300px;
width: 500px;
position: relative;
background-color: red;
}
img {
position: relative;
height: 100%;
width: 100%;
}
.container .hover-second-image-over-first-image {
width:100%;
height:100%;
background-image:url(image_02.jpg);
background-position:top left;
background-repeat: no-repeat;
background-size:100%;
position:absolute;
z-index:10;
opacity:0;
-webkit-transition: all 0.4s ease;
-moz-transition: all 0.4s ease;
-o-transition: all 0.4s ease;
transition: all 0.4s ease;
}
.container:hover .hover-second-image-over-first-image {
opacity:.3;
}
但我仍然想知道为什么代码之前在没有任何 z-index 位置的其他网站上工作...
这里有几点需要注意:
不要将样式放在 <body>
标签内
尝试在不使用 :hover
状态的情况下为您想要在图像上看到的图层设置样式,因此它必须是 .container .hover-second-image-over-first-image
对所有 .container
元素使用 :hover
操作
.container {
height: 300px;
width: 500px;
position: relative;
background-color: red;
}
img {
position: relative;
height: 100%;
width: 100%;
}
.container .hover-second-image-over-first-image {
width: 100%;
height: 100%;
background:blue;
opacity:0;
position: absolute;
top:0;
left:0;
z-index:10;
-webkit-transition: all 0.4s ease;
-moz-transition: all 0.4s ease;
-o-transition: all 0.4s ease;
transition: all 0.4s ease;
}
.container:hover .hover-second-image-over-first-image {
opacity:.7;
}
<div class="container">
<div class="hover-second-image-over-first-image"></div>
<img src="http://placehold.it/200" />
</div>
我对很可能很简单的事情感到困惑,但我无法弄清楚。当我将鼠标悬停在图像 1 上时,我希望图像 2 覆盖图像 1。 因此,目标是将图像 1 与包含半透明颜色渐变的图像 2 重叠。我知道这可以通过纯 CSS 以某种方式实现,但我需要这种方式。
下面的 CSS 代码取自另一个 Typo3 CMS 网站并且可以正常工作。
但是,我似乎无法让它在那个 Typo3 网站的另一个 part/element 上运行,我什至无法让它在像这个这样的简单基本 HTML 页面上运行。
<!DOCTYPE html>
<html>
<body>
<style>
.container {
height: 300px;
width: 500px;
position: relative;
background-color: red;
}
img {
position: relative;
height: 100%;
width: 100%;
}
.container .hover-second-image-over-first-image:hover {
width:100%;
height:100%;
background-image:url(image_02.jpg);
background-position:top left;
background-repeat: no-repeat;
background-size:100%;
position:absolute;
opacity:0;
-webkit-transition: all 0.4s ease;
-moz-transition: all 0.4s ease;
-o-transition: all 0.4s ease;
transition: all 0.4s ease;
}
</style>
<div class="container">
<div class="hover-second-image-over-first-image"></div>
<img src="image_01.jpg" />
</div>
</body>
</html>
编辑:
好的,所以 "z-index:10;" 帮我修好了。此代码在这里有效:
.container {
height: 300px;
width: 500px;
position: relative;
background-color: red;
}
img {
position: relative;
height: 100%;
width: 100%;
}
.container .hover-second-image-over-first-image {
width:100%;
height:100%;
background-image:url(image_02.jpg);
background-position:top left;
background-repeat: no-repeat;
background-size:100%;
position:absolute;
z-index:10;
opacity:0;
-webkit-transition: all 0.4s ease;
-moz-transition: all 0.4s ease;
-o-transition: all 0.4s ease;
transition: all 0.4s ease;
}
.container:hover .hover-second-image-over-first-image {
opacity:.3;
}
但我仍然想知道为什么代码之前在没有任何 z-index 位置的其他网站上工作...
这里有几点需要注意:
不要将样式放在
<body>
标签内尝试在不使用
:hover
状态的情况下为您想要在图像上看到的图层设置样式,因此它必须是.container .hover-second-image-over-first-image
对所有
.container
元素使用:hover
操作
.container {
height: 300px;
width: 500px;
position: relative;
background-color: red;
}
img {
position: relative;
height: 100%;
width: 100%;
}
.container .hover-second-image-over-first-image {
width: 100%;
height: 100%;
background:blue;
opacity:0;
position: absolute;
top:0;
left:0;
z-index:10;
-webkit-transition: all 0.4s ease;
-moz-transition: all 0.4s ease;
-o-transition: all 0.4s ease;
transition: all 0.4s ease;
}
.container:hover .hover-second-image-over-first-image {
opacity:.7;
}
<div class="container">
<div class="hover-second-image-over-first-image"></div>
<img src="http://placehold.it/200" />
</div>