[英]affect parent element by hover on child [duplicate]
这个问题已经在这里有了答案:
假设我有类似的内容:
<div class="bigWrap"> <div class="element"> ... <div class="HoverThisElement"></div> ... </div> <div class="element"> ... <div class="HoverThisElement"></div> ... </div> <div class="element"> ... <div class="HoverThisElement"></div> ... </div> </div>
当他的孩子.HoverThisElement悬停时,我需要影响.element。 我可以那样做吗? 如果可能,请以SASS为例
我有使用pointer-events
CSS的解决方法。 这可能会有所帮助。
.element { background: red; padding: 10px; margin: 10px; pointer-events: none; } .HoverThisElement { background: yellow; padding: 15px; pointer-events: auto; } .element:hover { background: green; //add some styles you want to parent element }
<div class="bigWrap"> <div class="element"> <div class="HoverThisElement"></div> </div> <div class="element"> <div class="HoverThisElement"></div> </div> <div class="element"> <div class="HoverThisElement"></div> </div> </div>
就像“ little_coder”说的那样,您可以欺骗这个。
但是,当您想支持IE10(不支持指针事件)时,您可以使用覆盖DIV并使用同级选择器作为目标(也可以使用伪元素)。
.overlay {
position: absolute;
background-color: red;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 2;
transition: all .3s;
}
.HoverThisElement {
position: absolute;
top: 50%;
transform: translateY(-50%);
right: 50px;
width: 50px;
height: 50px;
border-radius: 50%;
background-color: yellow;
z-index: 3;
&:hover {
+ .overlay {
right: 200px;
}
}
}
在CSS中无法执行此操作,因为CSS中没有父选择器 。
如果您确实需要这样做,那么唯一的方法就是使用JavaScript
如Logan所说,没有父选择器,您需要执行以下操作:在“ HoverThisElement”鼠标上,将活动类添加到最接近的“元素”,在鼠标上,将活动类删除
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.