Html 删除';:悬停';元素的CSS行为

Html 删除';:悬停';元素的CSS行为,html,css,Html,Css,我有一个CSS,当你将鼠标悬停在一个元素上时,它会改变格式 .test:hover{border:1px实心红色;} blah我会使用两个类。保留您的测试类,并添加第二个名为testhover的类,该类仅添加到您希望悬停的类中—与测试类一起。这并不是你直接要求的,但如果没有更多的上下文,它感觉是最好的解决方案,可能是最干净、最简单的方法 例如: .test{border:0px;} .testhover:hover{border:1px纯红色;} 废话 废话 blah添加一个新的.css类:

我有一个CSS,当你将鼠标悬停在一个元素上时,它会改变格式

.test:hover{border:1px实心红色;}

blah
我会使用两个类。保留您的测试类,并添加第二个名为testhover的类,该类仅添加到您希望悬停的类中—与测试类一起。这并不是你直接要求的,但如果没有更多的上下文,它感觉是最好的解决方案,可能是最干净、最简单的方法

例如:

.test{border:0px;}
.testhover:hover{border:1px纯红色;}
废话
废话
blah
添加一个新的.css类:

#test.nohover:hover { border: 0 }

废话

更“特定”的css规则获胜,因此此border:0版本将覆盖其他地方指定的通用规则。

您希望保留选择器,因此添加/删除它将不起作用。您不必编写一个(或两个)硬而快速的CSS选择器,也许您可以使用原始选择器根据某些标准将新的CSS规则应用于该元素:

$(".test").hover(
  if(some evaluation) {
    $(this).css('border':0);
  }
);

使用
:not
伪类排除不希望悬停应用于的类:

<div class="test"> blah </div>
<div class="test"> blah </div>
<div class="test nohover"> blah </div>

.test:not(.nohover):hover {  
    border: 1px solid red; 
}
废话
废话
废话
.test:not(.nohover):hover{
边框:1px纯红;
}

这就是你想要在一个css规则

一种方法是添加:

pointer-events: none;
对于元素,您要禁用悬停

(注意:这也会禁用该元素上的javascript事件,单击事件实际上会进入后面的元素)。

(截至2021年1月1日为98.12%)

这看起来干净多了

/**
*这允许您禁用任何元素的悬停事件
*/
.残疾人{

指针事件:无;/*我也有这个问题,我的解决方案是在我不想要悬停效果的元素上方有一个元素:

。无悬停{
位置:相对位置;
不透明度:0.65!重要;
显示:内联块;
}
.无悬停::之前{
内容:'';
背景色:透明;
位置:绝对位置;
排名:0;
左:0;
宽度:100%;
身高:100%;
z指数:60;
}

悬停
禁止悬停

它会的。它也会覆盖默认的外观,这是不同的。因此,总是会有一个可以看到鼠标悬停的浏览器。答案很好,它只在IE<11上不受支持,所以不再有那么多问题了。@MarkBuikema这是真的。编辑答案以反映这一点。在许多情况下,这是一个额外的奖励。令人恼火的是,这不是不受广泛支持。“不更改当前选项卡悬停时的格式”在大多数Navo菜单上都可能有一种行为。对于那些简单地使用2个类的报告,请考虑在这一点上广泛流行的引导和角度样式库。一个不简单地编码2个类。您可能会绕开第三方的样式。凌乱。感谢信息@奥利维尔IsFasys.@ EelaRoZimMalman,我会说THI。s得到广泛支持。全球90.97%的用户。但是,是的,如果您担心IE9,您应该提供另一个类。@Bodman指针事件:无;删除了悬停背景更改,但也从我的元素中禁用了超链接。如何删除悬停效果但保留超链接?这对我来说很有效,但我必须做一个更改,一个空格bef或者
:hover
。这可能是因为我使用的是SASS,不确定。谢谢,我使用它来禁用我应用程序中触摸设备自定义按钮上的任何悬停效果,方法是将
touchDevice
类添加到
body
并将css规则更改为类似
body:not(.touchDevice)。按钮:hover{…}
Yepp,这种解决方案要好得多。
pointer-events: none;