Html 是否将a:悬停样式替代为与普通样式相同?

Html 是否将a:悬停样式替代为与普通样式相同?,html,css,Html,Css,我与: a-背景色:红色 a:悬停-背景色:绿色 我现在正在创建一个新的全局类“disabled”(已禁用),以便在此处和其他链接(使用其他背景色)中应用该类: a、 禁用-不透明度:0.7;(因此,在最初的示例中,它显示背景红色,不透明度为0.7) a、 禁用:悬停-与a.disabled相同;(初始示例应显示背景红色,不透明度为0.7) 基本上,disabled类也会禁用更改背景颜色的“悬停”效果 我很难找到一个作为全局类工作的解决方案(显然,如果我设置了a.disabled:hov

我与:

  • a-背景色:红色
  • a:悬停-背景色:绿色
我现在正在创建一个新的全局类“disabled”(已禁用),以便在此处和其他链接(使用其他背景色)中应用该类:

  • a、 禁用-不透明度:0.7;(因此,在最初的示例中,它显示背景红色,不透明度为0.7)
  • a、 禁用:悬停-与a.disabled相同;(初始示例应显示背景红色,不透明度为0.7)
基本上,disabled类也会禁用更改背景颜色的“悬停”效果

我很难找到一个作为全局类工作的解决方案(显然,如果我设置了a.disabled:hover background color:red,它就会工作)

a{
显示:内联块;
宽度:300px;
高度:100px;
背景色:红色;
边框:1px纯色灰色;
}
a:悬停{
背景颜色:绿色;
}
.残疾人{
不透明度:0.7;
}
。已禁用:悬停{
不透明度:0.7;
背景色:首字母;
}

有一种方法可以做到这一点:

a.disabled{
  pointer-events:none;
}
实际上,它不仅仅是保留背景,它还禁用了点击事件

编辑:

为了防止悬停,您的
a:hover
应更改为:

a:not(.disabled):hover
并移除
。禁用:悬停

(或)

如果您想让CSS变得通用,似乎必须更改结构: 我想不出别的办法:

.linkBlue:悬停{
背景颜色:蓝色;
}
.linkRed:悬停{
背景色:红色;
}
.linkYellow:悬停{
背景颜色:黄色;
}
.linkGreen:悬停{
背景颜色:绿色;
}
.残疾人{
光标:不允许;
}
.残疾的
{
指针事件:无;
}
Link1
链接1
链接1

链接1根据CSS规范,初始值为:

每个属性都有一个初始值,在属性的 定义表。如果该财产不是继承财产,以及 级联不会产生一个值,然后是 属性是其初始值

背景色属性的初始值是透明的。这就是原因

.disabled:hover {
  background-color: initial;
}
与您的预期输出不同

但你可以用另一种方式。你能试试这个吗。希望这会有帮助

a:not(.disabled):hover {
    background-color: green;
}

.disabled:hover {
    opacity: 0.7;
}

那太聪明了!我从没想过要用它。我将等待更多的答案,因为这存在禁用指针事件的问题,这意味着如果在.disabled类上尝试类似cursor:not allowed的操作,它将不起作用。使用:not(.disabled):hover需要我做我试图避免的事情:a:not(.disabled):hover、--myBlueLink:not(.disabled):hover和--myYellowLink:not(残疾人士):hover。它可以工作,但给我同样的麻烦,只是为我的蓝色、红色和黄色链接创建3个不同的禁用类。我从您的编辑中了解到,没有任何方法可以“取消”背景色:绿色指令,我们必须“绕过”它。所有链接在没有hover的情况下都有相同的背景色吗?不。这就是区别它们之间。我有背景颜色为红色、蓝色或黄色的链接。这些链接之间也有不同的悬停背景颜色。禁用时,它们应显示默认颜色,不透明度为0.7,基本上不显示更改背景颜色的“悬停”效果。禁用时,我有一个光标:不允许,但我没有在上提到我的第一个问题,所以我不会因此而放弃接受正确答案。如果你想让css变得普通,那么你可能必须改变结构。我添加了一个snipet