【发布时间】:2022-02-11 23:08:41
【问题描述】:
当我将鼠标悬停在元素上方时,我需要为其设置样式。但是,我不想为其父 DOM 元素设置样式。但是,当我使用:hover 时,有问题的元素的样式就像我想要的那样,但不幸的是,它的所有父元素也都被样式化了
*:hover {
border-color: red;
}
main,
article,
div {
border: 1px solid lightgrey;
padding: 30px;
}
*:hover {
border-color: red;
}
<main>
<article>
<div>
</div>
</article>
</main>
只有当光标在外边框和中间边框之间时,外边框才会是红色的。仅当光标位于中间边框和内边框之间时,中间顺序才应为红色。仅当光标位于内边框内时,内边框才会为红色。
有没有办法只设置被悬停的 DOM 元素的样式(可以是任何元素)?还是我只能用 javascript 来实现这个目标?
【问题讨论】:
-
您的演示与您的示例不匹配,因此我在此处添加了它 - 您确实意识到它完全按照您的指定执行了吗?你告诉父母也要在悬停时设置样式。请指定您希望设置哪些子元素的样式。
-
您尝试重新创建的 JavaScript 代码是什么?
-
你想让它应用于所有元素,但不影响父元素吗?因为这里已经有所涉及:CSS hover on a div, but not if hover on his children(尽管根据您的用例,最佳答案的用处有限)
-
我添加了以下语句:“只有光标在外边框和中间边框之间时,外边框才为红色。只有光标在中间时,中间顺序才为红色边框和内边框。只有当光标位于内边框内时,内边框才会为红色。"
标签: javascript html css