我想做的是将某个div
对象悬停时,它会影响另一个对象的属性div
。
例如,在这个JSFiddle演示中,当您将鼠标悬停在#cube
其上时,它会发生变化,background-color
但是我想要的是,当我将鼠标悬停在上时#container
,#cube
它会受到影响。
div {
outline: 1px solid red;
}
#container {
width: 200px;
height: 30px;
}
#cube {
width: 30px;
height: 100%;
background-color: red;
}
#cube:hover {
width: 30px;
height: 100%;
background-color: blue;
}
<div id="container">
<div id="cube">
</div>
</div>
这是另一个想法,您可以在不考虑任何特定选择器的情况下,仅通过使用
:hover
主元素的状态来影响其他元素。为此,我将依靠自定义属性(CSS变量)的使用。正如我们在规范中所读到的:
这个想法是在主元素内定义自定义属性,并使用它们来设置子元素的样式,由于这些属性是继承的,因此我们只需要在悬停时在主元素内更改它们即可。
这是一个例子:
为什么这会比结合使用特定选择器和悬停更好?
我可以提供至少2个使这种方法成为值得考虑的理由:
border
,linear-gradient
,background-color
,box-shadow
etc. This will avoid us reseting all these properties on hover.Here is a more complex example:
As we can see above, we only need one CSS declaration in order to change many properties of different elements.