文本input字段的CSSselect器?

我如何使用CSSselect器来定位“文本”types的input字段?

input[type=text] 

或者,限制在表单内的文本input

 form input[type=text] 

或者,进一步限制到某种forms,假设它有id myForm

 #myForm input[type=text] 

注意:这不是IE6支持的,所以如果你想为IE6开发,可以使用IE7.js(如Yi Jiangbuild议的),或者开始为所有文本input添加类。

参考: http : //www.w3.org/TR/CSS2/selector.html#attribute-selectors


由于指定默认属性值可能不总是可以通过属性select器select,所以可以尝试覆盖其他呈现文本input的标记的情况:

 input:not([type]), // type attribute not present in markup input[type=""], // type attribute present, but empty input[type=text] // type is explicitly defined as 'text' 

当这个types被定义的时候,仍然是这种情况,但是它有一个无效的值,并且仍然返回到type =“text”。 为了说明这一点,我们可以select所有不属于其他已知types的input

 input:not([type=button]):not([type=password]):not([type=submit])... 

但是这个select器是相当荒谬的,而且可能的types列表正在增加新的function,正在增加到HTML。

注意: :not伪类只支持从IE9开始。

你可以在这里使用属性select器:

 input[type="text"] { font-family: Arial, sans-serif; } 

这在IE7及以上版本中得到支持。 如果您需要支持IE6,则可以使用IE7.js添加对此的支持。

有关更多信息,请参阅http://reference.sitepoint.com/css/attributeselector

我通常在我的主样式表中使用select器,然后制作一个ie6特定的.js(jquery)文件,它为所有inputtypes添加一个类。 例:

 $(document).ready(function(){ $("input[type='text']").addClass('text'); )}; 

然后使用这些类在ie6特定的样式表中复制我的样式。 这样,实际的标记是一点点清洁。

您可以使用:textselect器来select所有带有文本types的input

工作小提琴

 $(document).ready(function () { $(":text").css({ //or $("input:text") 'background': 'green', 'color':'#fff' }); }); 

:text是一个jQuery扩展,而不是CSS规范的一部分,使用text的查询不能利用本地DOM querySelectorAll()方法提供的性能提升。 为了在现代浏览器中获得更好的性能,请使用[type="text"] 。 这将适用于IE6+

 $("[type=text]").css({ // or $("input[type=text]") 'background': 'green', 'color':'#fff' }); 

CSS

 [type=text] // or input[type=text] { background: green; } 

我有一个表格行字段中的inputtypes的文本字段。 我用代码来定位它

 .admin_table input[type=text]:focus { background-color: #FEE5AC; } 

就像@Amir在上面贴出的那样,现在最好的方式就是使用跨浏览器和离开IE6

 [type=text] {} 

到目前为止,没有人提到CSS特性较低( 为什么 这 很重要 ?), [type=text]具有input[type=text] 0,0,1,0而不是0,0,1,1。

性能方面不会有任何负面影响。

正常化v4.0.0刚刚发布与降低select特异性 。

使用属性select器,我们在CSS中定位inputtypes文本

 input[type=text] { background:gold; font-size:15px; }