css - 是否可以定位 div 的两个相邻邻居

标签 css html

我想知道是否可以使用中间元素定位两个相邻元素?

例如:

<div>
   <span class="icon">icon</span>
   <input id="input" class="input error" type="text" />
   <label for="input"></label>
<div>

当输入有 error 类时,我想将 labelspan 设为红色。

我通过以下方法使标签变成了红色:

input.error ~ label {
    color: red;
}

但是我在跨度方面运气不佳。有人可以告诉我这是否可能吗?如果是这样,请提供帮助。

最佳答案

您可以将 flexbox 与 order 属性一起使用以直观地重新排列元素,同时将 input 作为 DOM 中的第一个元素,因此您可以使用一般兄弟选择器。

div {
  display: flex;
}
.icon {
  order: -1;
}
input.error ~ * {
    color: red;
}
<div>
  <input id="input" class="input error" type="text">
  <span class="icon">icon</span>
  <label for="input">label</label>
<div>

关于css - 是否可以定位 div 的两个相邻邻居,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42866512/

相关文章:

jquery - 将 div 高度设置为手动更改之前的高度

html - 如何使用 css 围绕固定点缩放矩形宽度?

javascript - 第二次未触发弹窗

javascript - appendChild 删除样式

javascript - 使用ajax向服务器发送数据的问题

HTML5 VIdeo 控件可见性/z-index

html - 更新 css 自定义属性中的 alpha 值不起作用

html - Jsoup CSS 选择器

javascript - 自定义应用程序启动屏幕

css - buddypress css文件放在哪里