将鼠标悬停在 div 更新点或间歇显示
hover over div updates display in spots or intermittently
我正在尝试实现悬停以显示 header 的效果。我已将 :hover 选择器分配给宽度为 99%、高度为 10vh 的 div,它应该与 header 相邻。当我将鼠标悬停在 div 的中心时,悬停显示会持续执行,当我将鼠标悬停在 div 的右侧时,会间歇性地执行,而当我将鼠标悬停在 [=28= 的左侧时,则不会].我添加了一个边框以使 :hover div 的边界可见。
当我悬停在 div 上的任何地方时,悬停不应该处于活动状态吗?
这个设置我做错了什么?
https://codepen.io/ripmurdock/pen/RwjyoqB?editors=1000
* {
margin: 0;
padding: 0;
}
body {
background-color: #121212;
}
.cc_vert_c1-1 {
width: 5vw;
height: 83vh;
left: 2vw;
top: 16vh;
position: absolute;
overflow: hidden;
}
.cc_hdr_cl-1 {
position: absolute;
height: 10vh;
border-style: dotted;
border-color: white;
display: none;
}
.cc_hover {
position: absolute;
height: 10vh;
width: 99%;
border-style: dotted;
border-color: white;
}
.cc_hover:hover+#cc_hdr-1 {
display: block;
}
.cc_hdr_logo_cl-1 {
width: 40vw;
max-height: 99.5vh;
padding-left: 2vw;
padding-top: 3vh;
}
.cc_horiz_c1-1 {
width: 48.3vw;
height: 10vh;
left: 50vw;
top: 3vh;
position: absolute;
}
<div class="cc_vert_c1-1">
<svg width="100" height="100vh">
<rect width="100" height="100vh" fill="#fff" />
</svg>
</div>
<div class="cc_hover"></div>
<div class="cc_hdr_cl-1" id="cc_hdr-1">
<svg class="cc_hdr_logo_cl-1">
<rect width="100" height="7vh" fill="#fff" />
</svg>
<svg class="cc_horiz_c1-1">
<rect width="600" height="7vh" fill="#fff" />
</svg>
</div>
您的悬停规则设置了兄弟元素的显示 属性,该元素位于原始元素之上。然后,这会中断原始元素上的悬停事件。如果同级元素是 child 元素,它仍然可以正常工作,因为悬停事件会传播。看这里。
请注意,这可能会增加悬停区域的大小,因为父元素会被子元素拉伸。
我不知道你的目标,所以没有更具体的解决方案。
* {
margin: 0;
padding: 0;
}
body {
background-color: #121212;
}
.cc_vert_c1-1 {
width: 5vw;
height: 83vh;
left: 2vw;
top: 16vh;
position: absolute;
overflow: hidden;
}
.cc_hdr_cl-1 {
position: absolute;
height: 10vh;
border-style: dotted;
border-color: white;
display: none;
}
.cc_hover {
position: absolute;
height: 10vh;
width: 99%;
border-style: dotted;
border-color: white;
}
.cc_hover:hover #cc_hdr-1 {
display: block;
background: pink;
}
.cc_hdr_logo_cl-1 {
width: 40vw;
max-height: 99.5vh;
padding-left: 2vw;
padding-top: 3vh;
}
.cc_horiz_c1-1 {
width: 48.3vw;
height: 10vh;
left: 50vw;
top: 3vh;
position: absolute;
}
<div class="cc_vert_c1-1">
<svg width="100" height="100vh">
<rect width="100" height="100vh" fill="#fff" />
</svg>
</div>
<div class="cc_hover">
<div class="cc_hdr_cl-1" id="cc_hdr-1">
<svg class="cc_hdr_logo_cl-1">
<rect width="100" height="7vh" fill="#fff" />
</svg>
<svg class="cc_horiz_c1-1">
<rect width="600" height="7vh" fill="#fff" />
</svg>
</div>
</div>
我正在尝试实现悬停以显示 header 的效果。我已将 :hover 选择器分配给宽度为 99%、高度为 10vh 的 div,它应该与 header 相邻。当我将鼠标悬停在 div 的中心时,悬停显示会持续执行,当我将鼠标悬停在 div 的右侧时,会间歇性地执行,而当我将鼠标悬停在 [=28= 的左侧时,则不会].我添加了一个边框以使 :hover div 的边界可见。
当我悬停在 div 上的任何地方时,悬停不应该处于活动状态吗?
这个设置我做错了什么?
https://codepen.io/ripmurdock/pen/RwjyoqB?editors=1000
* {
margin: 0;
padding: 0;
}
body {
background-color: #121212;
}
.cc_vert_c1-1 {
width: 5vw;
height: 83vh;
left: 2vw;
top: 16vh;
position: absolute;
overflow: hidden;
}
.cc_hdr_cl-1 {
position: absolute;
height: 10vh;
border-style: dotted;
border-color: white;
display: none;
}
.cc_hover {
position: absolute;
height: 10vh;
width: 99%;
border-style: dotted;
border-color: white;
}
.cc_hover:hover+#cc_hdr-1 {
display: block;
}
.cc_hdr_logo_cl-1 {
width: 40vw;
max-height: 99.5vh;
padding-left: 2vw;
padding-top: 3vh;
}
.cc_horiz_c1-1 {
width: 48.3vw;
height: 10vh;
left: 50vw;
top: 3vh;
position: absolute;
}
<div class="cc_vert_c1-1">
<svg width="100" height="100vh">
<rect width="100" height="100vh" fill="#fff" />
</svg>
</div>
<div class="cc_hover"></div>
<div class="cc_hdr_cl-1" id="cc_hdr-1">
<svg class="cc_hdr_logo_cl-1">
<rect width="100" height="7vh" fill="#fff" />
</svg>
<svg class="cc_horiz_c1-1">
<rect width="600" height="7vh" fill="#fff" />
</svg>
</div>
您的悬停规则设置了兄弟元素的显示 属性,该元素位于原始元素之上。然后,这会中断原始元素上的悬停事件。如果同级元素是 child 元素,它仍然可以正常工作,因为悬停事件会传播。看这里。
请注意,这可能会增加悬停区域的大小,因为父元素会被子元素拉伸。
我不知道你的目标,所以没有更具体的解决方案。
* {
margin: 0;
padding: 0;
}
body {
background-color: #121212;
}
.cc_vert_c1-1 {
width: 5vw;
height: 83vh;
left: 2vw;
top: 16vh;
position: absolute;
overflow: hidden;
}
.cc_hdr_cl-1 {
position: absolute;
height: 10vh;
border-style: dotted;
border-color: white;
display: none;
}
.cc_hover {
position: absolute;
height: 10vh;
width: 99%;
border-style: dotted;
border-color: white;
}
.cc_hover:hover #cc_hdr-1 {
display: block;
background: pink;
}
.cc_hdr_logo_cl-1 {
width: 40vw;
max-height: 99.5vh;
padding-left: 2vw;
padding-top: 3vh;
}
.cc_horiz_c1-1 {
width: 48.3vw;
height: 10vh;
left: 50vw;
top: 3vh;
position: absolute;
}
<div class="cc_vert_c1-1">
<svg width="100" height="100vh">
<rect width="100" height="100vh" fill="#fff" />
</svg>
</div>
<div class="cc_hover">
<div class="cc_hdr_cl-1" id="cc_hdr-1">
<svg class="cc_hdr_logo_cl-1">
<rect width="100" height="7vh" fill="#fff" />
</svg>
<svg class="cc_horiz_c1-1">
<rect width="600" height="7vh" fill="#fff" />
</svg>
</div>
</div>