我一直想知道在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
属性的元素?到目前为止,我还没有遇到任何其他使用它的标签。
由于
答案 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; }