CSS选择器 - 仅安全使用[type =" text"]而不输入[type =" text"]?

时间:2014-10-26 07:48:08

标签: html css

我一直想知道在CSS中使用[type="text"]代替input[type="text"]是否安全。

原因是使用input[type="text"],我无法使用单个类选择器覆盖它。

// HTML
<input type="text" class="has-error">

// CSS
input[type="text"] { color: black; } // has stronger specificity than below
.has-error { color: red; }           // won't override

那么,HTML中是否还有其他使用type属性的元素?到目前为止,我还没有遇到任何其他使用它的标签。

由于

3 个答案:

答案 0 :(得分:2)

以下标记支持type属性:

<button>, <input>, <command>, <embed>, <object>, <script>, <source>, <style>, <menu>source

并且只有input标记有&#39; text&#39;作为type atttribute

的可能值

所以,是的,[type="text"]应该没问题,假设标记写得正确,并且这样的选择器内的规则只会在类型为text的输入元素上设置。

答案 1 :(得分:1)

是的,使用它是安全的,直到你没有其他具有type属性的元素,但如果你喜欢&#34; <ul>&#34;可以有类型属性,你也会选择它,但因为你也用&#34; text&#34;作为一种类型,所以你不会与内置标签冲突,但可以在插件等冲突,你自定义标签,所以使解决方案有输入[type =&#34; text&#34;]而不是

答案 2 :(得分:1)

最好将它与标记名一起使用(按标记名选择,按属性过滤比选择所有标记快得多并过滤它们 - 你可以忽略这一点,但击球时要记住它)

覆盖执行此操作

input[type="text"] { color: black; }
input[type="text"].has-error { color: red; } 

您可以在此处查看http://jsbin.com/rayinebaro/1/edit?html,css,output