Css 当用户按住鼠标单击时应用样式?

Css 当用户按住鼠标单击时应用样式?,css,Css,我在我的项目中有一个按钮,我试图删除outline属性,该属性对于正在使用的CSS主题是默认的。当没有应用伪类时,我能够为按钮应用CSS规则,对于:hover和:focus 但是,当我用鼠标或触控板单击并按住时,我仍然可以看到轮廓,即使应用了:active规则 这是我的CSS(覆盖默认主题,这不是来自主题本身的CSS): 我需要使用什么CSS选择器来覆盖默认行为?谢谢 您不需要手动处理每个元素的状态及其相应的样式。如果将样式应用于没有伪类的元素,它还将覆盖其不同的状态,如:hover,:acti

我在我的项目中有一个按钮,我试图删除
outline
属性,该属性对于正在使用的CSS主题是默认的。当没有应用伪类时,我能够为按钮应用CSS规则,对于
:hover
:focus

但是,当我用鼠标或触控板单击并按住时,我仍然可以看到轮廓,即使应用了
:active
规则

这是我的CSS(覆盖默认主题,这不是来自主题本身的CSS):


我需要使用什么CSS选择器来覆盖默认行为?谢谢

您不需要手动处理每个元素的状态及其相应的样式。如果将样式应用于没有伪类的元素,它还将覆盖其不同的状态,如
:hover
:active
等。还记得吗?考虑下面,按钮标题总是红色的,不管悬停还是焦点,除非我们指定一个更具体的规则<代码>:活动< /代码>,然后字幕在按下时变成蓝色。我们 不需要将侦听器附加到其
mousein
mouseout
mouseover
事件来处理其焦点或悬停状态样式

按钮{
颜色:红色;
}
按钮:激活{
颜色:蓝色;
}

OK
按住或单击某个元素时,会触发css活动选择器。光标悬停在图元上时,将触发悬停选择器。
#btn:hover{outline:1px实心红色;}
#btn:活动{大纲:无;}

悬停时显示红色轮廓,单击时显示无轮廓
解决方案很难找到,但很简单:

.AddButton:hover:active {
  outline: 0;
}

使用JavaScript?我认为您应该使用JavaScript来获取事件:“onmousedown”,因为我认为除非您使用外部库,否则Css不支持此操作。我们可以在此提供一个实例吗?您可能不想删除该大纲。这是有原因的@jmargolisvt这没有帮助,这是一个观点,不是一个技术性的答案。这是理解CSS行为的一个有效问题。关于大纲的意见也许是好的,但是一些客户想要不同的行为。我理解CSS,在大多数情况下,我正在试图解决这个问题。所以你问题的后半部分更有帮助。但是,正如您从我的CSS代码片段中看到的,我正在为按钮和相关的伪类设置CSS(并覆盖主题)。然而,这还不够。当我按下按钮(按住鼠标/触摸板)时,提纲仍然显示。然后你必须检查主题的提纲规则是如何编写的。我认为它有更大的特殊性,所以你的规则不能凌驾于此。找出答案,并对你的规则做一些修改,这样你就可以对主题有更多的特殊性。然后你可以消除轮廓。
.AddButton:hover:active {
  outline: 0;
}