cssselect器匹配没有属性x的元素

我正在处理一个CSS文件,并find需要样式文本input框,但是,我遇到了问题。 我需要一个简单的声明来匹配所有这些元素:

<input /> <input type='text' /> <input type='password' /> 

…但不匹配这些:

 <input type='submit' /> <input type='button' /> <input type='image' /> <input type='file' /> <input type='checkbox' /> <input type='radio' /> <input type='reset' /> 

这是我想要做的:

 input[!type], input[type='text'], input[type='password'] { /* styles here */ } 

在上面的CSS中,注意第一个select器是input[!type] 。 我的意思是我想select所有没有指定type属性的input框(因为它默认为文本,但是input[type='text']不匹配它)。 不幸的是,我能find的CSS3规范中没有这样的select器。

有谁知道一个办法来完成这个?

:不select

 input:not([type]), input[type='text'], input[type='password'] { /* style here */ } 

支持:在Internet Explorer 9和更高版本中

对于更多的跨浏览器的解决scheme,你可以按照你想要的方式input所有input的非input,文本和密码,然后另一个样式覆盖无线电,checkbox等的样式。

 input { border:solid 1px red; } input[type=radio], input[type=checkbox], input[type=submit], input[type=reset], input[type=file] { border:none; } 

– 要么 –

可以生成非typesinput的代码的任何部分给他们一个像.no-type或完全不输出? 另外这种types的select可以用jQuery来完成。

只是想补充一点,你可以在oldIE中使用selectivizr:notselector: http ://selectivizr.com/