我想了解为什么将鼠标放在页面上的任何位置时,悬停效果都会应用于图像,而不是将鼠标直接放在图像本身上时会激活。我曾尝试更改主容器的宽度和高度,但这似乎无法解决。
<https://codepen.io/jl88s/pen/oawOOM?editors=1100>
答案 0 :(得分:0)
我的第一个解决方案引起了另一个问题。当您尝试将鼠标悬停在按钮上时,叠加层会消失。对于那个很抱歉。检查我的新解决方案。
这是css:
->
答案 1 :(得分:0)
您有此问题,因为您在容器上设置了:hover
选择器,该选择器占用了整个高度和宽度。因此,在您进入窗口时,:hover
被触发。
将您的容器设置为display: inline-flex
,删除height
,然后将其相对于容器放置在所需的位置
父母。
未添加父项,并且在示例中未放置容器,请告诉我是否要
。修改
在this示例中添加了居中。 (请参见html和身体样式)
html, body {
height: 100%;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.container {
display: inline-flex;
justify-content: center;
align-items: center;
position: relative;
margin: auto;
}
.image {
width: 400px;
height: 400px;
display: block;
}
.middle {
transition: 2s ease;
position: absolute;
text-align: center;
opacity: 0;
}
.container:hover .image {
opacity: 0.3;
}
.container:hover .middle {
opacity: 1;
}
.text {
background-color: orange;
color: white;
font-size: 1em;
padding: 16px 32px;
text-transform: uppercase;
}