属性选择器,其中值等于A或B?

Ale*_*nor 46 css css-selectors css3

我想知道是否可以在CSS中指定属性等于两个值之一的元素,如下所示:

input[type=text][type=password]
Run Code Online (Sandbox Code Playgroud)

但是这个选择器似乎不起作用(我假设因为指定两次相同的属性无效),有谁知道如何做到这一点?

nge*_*gen 46

像这样?http://jsfiddle.net/m242t/

HTML:

<form>
Username: <input type="username" name="Username" value="Username" /><br />
Password: <input type="password" name="Password" value="Password" /><br />
<input type="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

CSS:

input[type="username"], input[type="password"] {
    color: blue;
}
Run Code Online (Sandbox Code Playgroud)

  • 这个答案实际上是无效的,您的解决方案需要两个独立的选择器 正如@boltclock所提到的,没有可以匹配属性的多个值的单一选择器. (24认同)
  • @biphobe OP未指定他们想要的* one *选择器。他们想知道如何对属性进行或逻辑,这就是方法。您的评论无效。 (3认同)

jor*_*nfb 12

现在的一个选项是:is,它更干净一些,并且随着选择器列表的增加而保存字符:

<style>
  input:is([type=text], [type=password]) { background-color: red }
</style>

<input type="text"> red
<input type="password"> red
<input type="email"> white
Run Code Online (Sandbox Code Playgroud)

MDN 有一些有用的示例,展示了使用https://developer.mozilla.org/en-US/docs/Web/CSS/:is可以大幅减少选择器数量:is