我对此有非常简单的解决方案。
只需创建一个新类
.noHover{
pointer-events: none;
}
并使用它来禁用它上面的任何事件。像这样使用它:
<a href='' class='btn noHover'>You cant touch ME :P</a>
您可以使用 :not 选择器来实现这一点:
HTML 代码:
<a class="button">Click me</a>
<a class="button disable">Click me</a>
CSS 代码(使用 scss):
.button {
background-color: red;
&:not(.disable):hover {
/* apply hover effect here */
}
}
通过这种方式,您可以在未应用指定类 (.disable) 时应用悬停效果样式。
&:not(.disable):hover
这是取消悬停效果的方法。
.table-hover > tbody > tr.hidden-table:hover > td {
background-color: unset !important;
color: unset !important;
}
!important
的属性并且由于使用的框架库而无法更改它,则它适用,那么这种使用是有保证的。从问题中您可以看到该元素确实已经带有 !important
,因此这是覆盖它的唯一方法
要禁用悬停效果,我有两个建议:
如果你的悬停效果是由 JavaScript 触发的,只需使用 $.unbind('hover');
如果您的悬停样式是由类触发的,则只需使用 $.removeClass('hoverCssClass');
使用 CSS !important
覆盖 CSS 会使您的 CSS 非常不干净,因此不推荐使用该方法。您始终可以复制具有不同类名的 CSS 样式以保持相同的样式。
从您的问题中,我所能理解的是,您已经对要删除的按钮产生了一些悬停效果。为此,要么删除导致悬停效果的 css,要么覆盖它。
要覆盖,请执行此操作
.buttonDisabled:hover
{
//overriding css goes here
}
例如,如果您的按钮的背景颜色在悬停时从红色变为蓝色。在覆盖的 css 中,您会将其设为红色,这样它就不会改变。
还要仔细阅读所有编写和覆盖 css 的规则。熟悉什么 css 会有什么优先级。
祝你好运。
执行此 Html 并且 CSS 在 head 标签中。只需创建一个新类并在 css 中使用以下代码片段:
pointer-events:none;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
.buttonDisabled {
pointer-events: none;
}
</style>
</head>
<body>
<button class="buttonDisabled">Not-a-button</button>
</body>
</html>
为此,我最终使用了内联样式,因为我只希望一个特定元素没有任何悬停单击事件或样式,因为它只是有关页面上看起来像它的其他按钮的说明的一部分,并且给它覆盖优先级。这是:
<button style="pointer-events:none"></button>
这为我删除了单个元素上的所有样式和绑定 JavaScript/JQuery 功能,同时不影响页面上的其他元素:)。有关详细信息,请参阅 mozilla reference。
添加以下内容以在禁用按钮上添加悬停效果:
.buttonDisabled:hover
{
/*your code goes here*/
}
使用 transition: all 100s ease-in-out;
覆盖悬停更改。如果您不知道要替换的属性的原始值,这不是一种解决方案,而是一种解决方法。
我尝试了以下方法,它对我更有效
代码:
.unstyled-link{
color: inherit;
text-decoration: inherit;
&:link,
&:hover {
color: inherit;
text-decoration: inherit;
}
}
其他解决方案对我不起作用。
我只是改变了这个
.home_page_category_links {
color:#eb4746;
}
对此:
.home_page_category_links, .home_page_category_links:hover {
color:#eb4746;
}
这意味着应用于该类元素的相同样式在悬停时也应用于该类的元素。
额外说明:如果您要保持颜色相同,也许您可能还想避免任何下划线,如果是这样,也只需包括 text-decoration: none;
(如果使用引导程序,则包括 text-decoration: none !important;
)。
我在这里所做的是我在按钮上制作了悬停效果,但不适用于具有禁用类的按钮
button:hover:not(button.disabled){
background-color: rgb(214, 214, 214);
color: rgb(0, 0, 44);
}
<div class='hover noHover'>Some content</div>
不会影响只有hover
类的任何其他元素。