关于css选择器:css伪类输入:not(禁用)not:[type =“ submit”]:focus

Css pseudo classes input:not(disabled)not:[type=“submit”]:focus

我想对输入元素应用一些CSS,而我只想对未禁用并且没有提交类型的输入进行处理,在CSS下面是行不通的,也许有人可以向我解释如何添加它。

1
2
3
4
input:not(disabled)not:[type="submit"]:focus{
box-shadow:0 0 2px 0 #0066FF;
-webkit-box-shadow:0 0 4px 0 #66A3FF;
}

代替:

1
input:not(disabled)not:[type="submit"]:focus {}

用:

1
input:not([disabled]):not([type="submit"]):focus {}

disabled是一个属性,因此需要使用方括号,并且您似乎在:not()选择器上混淆了/缺少冒号和括号。

演示:http://jsfiddle.net/HSKPx/

需要注意的一件事:我可能是错的,但我认为disabled输入通常不会获得焦点,因此该部分可能是多余的。

或者,使用:enabled

1
input:enabled:not([type="submit"]):focus { /* styles here */ }

同样,我无法想到禁用输入可以获得焦点的情况,因此似乎没有必要。


您的语法非常严格。

更改此:

1
input:not(disabled)not:[type="submit"]:focus{

至:

1
input:not(:disabled):not([type="submit"]):focus{

似乎很多人没有意识到:enabled:disabled是有效的CSS选择器...


您可以选择几种错别字。 应该是:input:not([disabled]):not([type="submit"]):focus

有关概念证明,请参见此jsFiddle。 在旁注中,如果删除了" background-color"属性,则框阴影不再起作用。 不知道为什么。