有没有办法做一个"不相邻"选择器,与+运算符相对

时间:2015-09-24 16:32:25

标签: css css3 css-selectors

在css中,可以使用+运算符选择元素后面的元素。例如,我只能选择直接跟随标签的输入:

label + input {
    color: red;
}

有没有办法做相反的事情,所以就像"不相邻"?在我的示例中,有没有办法选择直接跟随标签的所有输入?

编辑: 它需要选择不直接跟随标签的所有输入,包括没有任何标签的地方的输入。

2 个答案:

答案 0 :(得分:7)

喜欢这个

:not(label) + input {
    color: red;
}

......好吧,如果您在body标签后直接输入,则需要Oriol的额外选择器input:first-child

答案 1 :(得分:5)

我认为会是

input:first-child, :not(label) + input {
  color: red;
}

input {
  background: red;
}
input:first-child, :not(label) + input {
  background: #0f0;
}
body > * {
  display: block;
  width: 100%;
}
<input value="Match (first child)" />
<label>&lt;label&gt;</label>
<span>&lt;span&gt;</span>
<input value="Match (immediately follows a non-label)" />
<label>&lt;label&gt;</label>
<input value="NO match (immediately follows a label)" />
<span>&lt;span&gt;</span>