[英]Hover over/click on div to affect another div?
当我将鼠标悬停在其上并点击其中时,我正试图影响其他3个div,但它不想工作。
#header2:hover {
background-color: rgba(10,50,10,0.9);
}
#header2:active {
background-color: rgba(0,0,0,0);
}
#header2:active ~ #header1{
background-color: rgba(0,0,0,0.8);
}
#header2:active ~ #header3{
background-color: rgba(50,10,10,0.8);
}
#header2:active ~ #header4{
background-color: rgba(10,10,50,0.8);
}
https://jsfiddle.net/ThinkingStiff/a3y52/在这个例子中,我发现whilist试图找出问题,它工作正常,我看不出任何差异。 这些元素也不是彼此的孩子或父母。 (如果可能的话,我想在没有Javascript / Jquery的情况下解决这个问题)
我的HTML:
<div id="header1"><a data-scroll id="link1" href="#header1content"></a></div>
<div id="header2"><a data-scroll id="link2" href="#header2content"></a></div>
<div id="header3"><a data-scroll id="link3" href="#header3content"></a></div>
<div id="header4"><a data-scroll id="link4" href="#header4content"></a></div>
为了使这项工作, #header2
应该是标记中的第一个元素。 因为css中的~
选择器可以选择特定元素之前(未跟随)的元素。
因此,如果你想在#header2
悬停时设置不同的元素,那么#header2
应该在标记中#header2
在第一位。 同样地,如果你想在#header4
悬停时设置不同的元素,那么#header4
应该在标记中#header4
在第一位。
使用css flex
您可以更改元素的顺序。 它有一个可以改变顺序的子元素的order
属性。 您可以使其工作如下所示:
.headers { flex-direction: column; display: flex; } .headers div { background: #ccc; margin: 0 0 10px; height: 50px; } #header2 {order: 2;} #header1 {order: 1;} #header3 {order: 3;} #header4 {order: 4;} #header2:hover { background-color: rgba(10,50,10,0.9); } #header2:active { background-color: rgba(0,0,0,0); } #header2:active ~ #header1, #header2:hover ~ #header1 { background-color: rgba(0,0,0,0.8); } #header2:active ~ #header3, #header2:hover ~ #header3 { background-color: rgba(50,10,10,0.8); } #header2:active ~ #header4, #header2:hover ~ #header4 { background-color: rgba(10,10,50,0.8); }
<div class="headers"> <div id="header2"><a data-scroll id="link2" href="#header2content">Header 2</a></div> <div id="header1"><a data-scroll id="link1" href="#header1content">Header 1</a></div> <div id="header3"><a data-scroll id="link3" href="#header3content">Header 3</a></div> <div id="header4"><a data-scroll id="link4" href="#header4content">Header 4</a></div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.