在悬停时更改另一个 div,它既不是兄弟也不是 child
Change another div on hover which is not sibling nor child
我的 HTML 代码与此类似:
<div class="navbar">
<div class="btn-section btn-1">
<p class="section pro">...</p>
</div>
</div>
<div class="navbar">
<div class="btn-section btn-2">
<p class="section notpro">...</p>
</div>
</div>
我在我的 CSS 代码中使用它:
.btn-1:hover {
.pro {
...
}
}
效果很好。
我现在要做的是修改 btn-1:hover 中的 .notpro class。由于 .notpro 不是 child 或 btn-1 的同级文件,因此它不起作用。
.btn-1:hover {
.pro {
... // works
}
.notpro {
... // doesn't work
}
}
有办法吗?
谢谢!
没有使用 javascript 来影响不同的非兄弟选择器是没有办法的。但是如果你将悬停向上移动一级,你就可以做到。
您需要将鼠标悬停在第一个导航栏上并使用直接同级组合器 (+
) - 定位另一个导航栏然后在其中获取 .notpro 元素。请注意,我在您的元素中添加了文字以显示悬停效果。
唯一的其他 CSS 方法是将两个元素都放在一个导航栏中 - 这样它们就成为兄弟姐妹并且可以被定位。
.navbar:hover + .navbar .notpro {
color: red;
}
<div class="navbar">
<div class="btn-section btn-1">
<p class="section pro">I am a Pro</p>
</div>
</div>
<div class="navbar">
<div class="btn-section btn-2">
<p class="section notpro">I am Not a Pro</p>
</div>
</div>
我认为此语法在 CSS 中无效,意思是选择器在另一个选择器中。
您可以将 :hover 添加到 'pro' 以获得与父 div 不同的行为。
我的 HTML 代码与此类似:
<div class="navbar">
<div class="btn-section btn-1">
<p class="section pro">...</p>
</div>
</div>
<div class="navbar">
<div class="btn-section btn-2">
<p class="section notpro">...</p>
</div>
</div>
我在我的 CSS 代码中使用它:
.btn-1:hover {
.pro {
...
}
}
效果很好。
我现在要做的是修改 btn-1:hover 中的 .notpro class。由于 .notpro 不是 child 或 btn-1 的同级文件,因此它不起作用。
.btn-1:hover {
.pro {
... // works
}
.notpro {
... // doesn't work
}
}
有办法吗?
谢谢!
没有使用 javascript 来影响不同的非兄弟选择器是没有办法的。但是如果你将悬停向上移动一级,你就可以做到。
您需要将鼠标悬停在第一个导航栏上并使用直接同级组合器 (+
) - 定位另一个导航栏然后在其中获取 .notpro 元素。请注意,我在您的元素中添加了文字以显示悬停效果。
唯一的其他 CSS 方法是将两个元素都放在一个导航栏中 - 这样它们就成为兄弟姐妹并且可以被定位。
.navbar:hover + .navbar .notpro {
color: red;
}
<div class="navbar">
<div class="btn-section btn-1">
<p class="section pro">I am a Pro</p>
</div>
</div>
<div class="navbar">
<div class="btn-section btn-2">
<p class="section notpro">I am Not a Pro</p>
</div>
</div>
我认为此语法在 CSS 中无效,意思是选择器在另一个选择器中。
您可以将 :hover 添加到 'pro' 以获得与父 div 不同的行为。