我有一个CSS选择器如下:
#foo input[type=number].form-control, #foo input[type=text].form-control
是否有更简洁的语法,如:
#foo input[type=number,text].form-control
这不起作用,但做了类似的事情吗?
答案 0 :(得分:3)
:matches()
至少允许您在单个复合选择器中使用OR两个属性选择器:
#foo input:matches([type=number], [type=text]).form-control
也就是说,在可预见的将来,您可能不得不坚持使用当前详细的语法,直到浏览器开始实现:matches()
。
答案 1 :(得分:1)
不是没有用于简单的CSS,但使用像LESS或SASS这样的预处理器可以嵌套属性。
#foo {
input.form-control {
&[type=number],
&[type=text] {
/* your css styles here */
}
}
}
这可能不是“简洁”,因为最终结果比你期望的结果更长,但它更容易阅读,并且可能会减少样式表中的一些重复。