css - 有没有办法做一个 "not adjacent to"选择器,与 + 运算符相反

标签 css css-selectors

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

label + input {
    color: red;
}

有没有办法做相反的事情,比如“不相邻”?在我的例子中,有没有办法选择所有直接跟在标签后面的输入?

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

最佳答案

我觉得是

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>

关于css - 有没有办法做一个 "not adjacent to"选择器,与 + 运算符相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32766532/

相关文章:

html - 按钮类型 CSS 和禁用的按钮样式

html - IE8 不尊重 CSS 规则覆盖

css - 如何定位 <ul> 中的第一个 <a> 标签

javascript - 旋转图像但不旋转 Canvas

javascript - 将一个 HTML 文档呈现到另一个 HTML 文档中

html - 在页眉/页脚保持静止时滚动内容

javascript - 空表单字段周围的 jQuery/Javascript 边框

css - 如何将 css 规则基于 dir 属性的继承值

javascript - 如何在另一个类中通过类名定位一个div

javascript - Bootstrap 表在更改后向 'contenteditable' 类添加边框