将 :hover 样式应用于具有相同类的所有元素

Posted

技术标签:

【中文标题】将 :hover 样式应用于具有相同类的所有元素【英文标题】:Apply :hover styling to all elements that have the same class 【发布时间】:2017-10-30 03:36:03 【问题描述】:

我正在尝试对所有具有 dialog-btn 类的 button 标记应用悬停效果。我试过.dialog-btn:hoverbackground-color:gold 但这不起作用。我也尝试过针对类似问题的其他建议,但仍然没有运气。有人可以澄清一下我该怎么做吗?

以下两个示例都不起作用。

button.dialog-btn:hover 
  background-color: gold;
<div class="dialog-btns">
  <button class="dialog-btn" id="yes">Ref Match</button>
  <button class="dialog-btn" id="about">About</button>
</div>

.dialog-btn:hover 
  background-color: gold;
<div class="dialog-btns">
  <button class="dialog-btn" id="yes">Ref Match</button>
  <button class="dialog-btn" id="about">About</button>
</div>

编辑 2:

 #yes
    background-color:green;
 
 #about
    background-color:purple;
 

上面的代码似乎覆盖了上面的.dialog-btn:hover 代码。这是为什么呢?

【问题讨论】:

您需要提供minimal reproducible example,而不是没有 html 的 CSS 小片段。 你的代码.. ....' “有人可以澄清一下我是如何做到这一点的吗?” - 单独使用 CSS:完全没有。 (也许如果所有按钮都有一个共同的父级,那么悬停父级可以为子按钮着色 - 但这在大多数布局情况下可能行不通。)这将需要一些 javascript ***.com/questions/1935820/set-ahover-based-on-class 然后发布您的代码] 【参考方案1】:

阅读您的 cmets,如果您将鼠标悬停在父元素上,我想您希望所有按钮上都有金色。

如果是这样,你可以这样做

.dialog-btns:hover .dialog-btn
background-color: gold;

【讨论】:

.dialog-btn:hover... 仅在我没有 id yesabout 的样式时有效 这是因为 id 比 class 具有更高的特异性。要么你不应该使用 id 要么使用background-color: gold!important; 谢谢!解决了它!

以上是关于将 :hover 样式应用于具有相同类的所有元素的主要内容,如果未能解决你的问题,请参考以下文章

如何选择具有类的所有元素,除了具有与模式匹配的id的祖先的元素?

如何在 firebug 和 chrome 调试器中看到附加到 :hover 和其他伪类的样式

将 CSS 样式应用于子元素

on click函数应用于具有相同类的所有div

与样式组件一起使用的 Before 和 After 伪类

突出显示具有相同类的所有 div