您可以看到当您将鼠标悬停在文本周围时,您会看到悬停效果,但是当您将鼠标悬停在文本上时会丢失该效果。
HTML
<body>
<div id="work1"></div>
<p style="position: absolute; top: 2px;">Brand new logo!</p>
</body>
CSS
#work1 {
width: 308px;
height: 86px;
opacity: 0;
background-color: #272727;
-moz-transition: 0.3s all;
-webkit-transition: 0.3s all;
-o-transition: 0.3s all;
transition: 0.3s all;
}
#work1:hover {
opacity: 1;
}
答案 0 :(得分:3)
您的<p>
超出<div>
<div id="work1">
<p>Brand new logo!</p>
</div>
但并非所有这些都需要修复。您试图为bg颜色设置动画,而不是不透明度。请尝试使用此css:
#work1 {
width: 308px;
height: 86px;
background-color: transparent;
-moz-transition: 0.3s all;
-webkit-transition: 0.3s all;
-o-transition: 0.3s all;
transition: 0.3s all;
}
#work1:hover {
background-color: #272727;
}
答案 1 :(得分:2)
一种方法是在绝对定位元素上使用pointer-events: none;
,段落如下:
<强> EXAMPLE HERE 强>
p {
pointer-events: none;
}
根据 MDN :
CSS属性
pointer-events
允许作者控制什么 情况(如果有的话)特定的图形元素可以成为 鼠标事件的目标。<强>无强>
该元素永远不是鼠标事件的目标;但是,老鼠 如果这些后代有事件,事件可能会针对其后代元素 指针事件设置为其他值。在这种情况下,鼠标 事件将触发此父元素上的事件侦听器 适合在活动期间往返于后代的路上 捕获/泡沫阶段
pointer-event
是documented in SVG specification,但它可以用于HTML / XML内容。
答案 2 :(得分:0)
你有
<p>
以外的
<div>
<div id="work1">
<p style="position: absolute; top: 2px;">Brand new logo!</p>
</div>
我在悬停时发出了color:white
。所以你可以阅读......
#work1:hover {
background-color: #272727;
color:white;
}
答案 3 :(得分:0)
您p
标记需要位于div
这就是悬停关闭的原因
至于不透明度。我使用此site将您的十六进制颜色转换为rgb,结果为27,27,27
所以将你的css改为:
#work1 {
width: 308px;
height: 86px;
background-color: rgba(27,27,27,0);
-moz-transition: 0.3s all;
-webkit-transition: 0.3s all;
-o-transition: 0.3s all;
transition: 0.3s all;
}
#work1:hover {
background-color: rgba(27,27,27,1);
}
HTML:
<body>
<div id="work1">
<p style="position: absolute; top: 2px;">Brand new logo!</p>
</div>
</body>
答案 4 :(得分:0)
是的,因为您的p
标记位于div#work1
之外。把你的段落放入div。
<div id="work1">
<p style="position: absolute; top: 2px;">Brand new logo!</p>
</div>
您可能更改了文字的color
。
color: #FFF;