Css 伪类 input:not(disabled)not:[type="submit"]:focus

Posted

技术标签:

【中文标题】Css 伪类 input:not(disabled)not:[type="submit"]:focus【英文标题】:Css pseudo classes input:not(disabled)not:[type="submit"]:focus 【发布时间】:2012-03-01 17:07:38 【问题描述】:

我想为输入元素应用一些 css,并且我只想对未禁用且非提交类型的输入执行此操作,下面的 css 不起作用,也许如果有人可以解释我必须如何添加它。

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 

用途:

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

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

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

需要注意的一点:我可能错了,但我认为disabled 输入不能正常接收焦点,因此该部分可能是多余的。

或者,使用:enabled

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

再次,我想不出禁用输入可以接收焦点的情况,因此似乎没有必要。

【讨论】:

:not([disabled]) 是一种非常冗长的写法 :enabled developer.mozilla.org/en-US/docs/Web/CSS/:enabled @Adria 不适用于 的我。有一个 并且必须专门使用 :disabled 选择器。 FF65。 由于某种原因 ":enabled" 在我的 ie 11 中不起作用 使用:not([disabled])VS. 有什么区别吗? :not(:disabled) ? 没有也许disabled 元素无法获得 focus 状态。既不通过 CSS 也不通过 JS。【参考方案2】:

你的语法很古怪。

改变这个:

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

到:

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

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

【讨论】:

为什么不进一步缩短为input:enabled:not([type="submit"]):focus【参考方案3】:

您的选择中有一些拼写错误。应该是:input:not([disabled]):not([type="submit"]):focus

请参阅此jsFiddle 以获得概念证明。在旁注中,如果我删除了“背景颜色”属性,那么框阴影将不再起作用。不知道为什么。

【讨论】:

以上是关于Css 伪类 input:not(disabled)not:[type="submit"]:focus的主要内容,如果未能解决你的问题,请参考以下文章

CSS 表单状态伪类选择器

css选择器的1.13 UI元素状态伪类选择器

TailWind CSS 文档 伪类变体

移动端常见问题

CSS 伪类: 什么是 CSS 伪类?CSS 伪类怎么分类? CSS 伪类有哪些?以及分类对应的伪类

CSS伪类--锚伪类选择器(动态伪类选择器)-使用详细总结