css - 来自不同列表的第一个未选中的复选框 - 仅在可能的情况下使用 CSS

标签 css

我试图突出显示整个页面上第一个未选中复选框后面的标签,该标签由类似这样的内容组成(为清楚起见,省略了 div 标签之间的额外 html):

.challenges input[type="checkbox"]:not(:checked)~label {
  color: lime;
}
<div class="challenges">
  <input type="checkbox">
  <label for="">test 01</label>
  <input type="checkbox">
  <label for="">test 02</label>
  <input type="checkbox">
  <label for="">test 03</label>
</div>
<div class="challenges">
  <input type="checkbox">
  <label for="">test 01</label>
  <input type="checkbox">
  <label for="">test 02</label>
  <input type="checkbox">
  <label for="">test 03</label>
</div>
<div class="challenges">
  <input type="checkbox">
  <label for="">test 01</label>
  <input type="checkbox">
  <label for="">test 02</label>
  <input type="checkbox">
  <label for="">test 03</label>
</div>
<div class="challenges">
  <input type="checkbox">
  <label for="">test 01</label>
  <input type="checkbox">
  <label for="">test 02</label>
  <input type="checkbox">
  <label for="">test 03</label>
</div>

但是这会检查所有经过净检查的复选框。我一直在尝试 first-of-type 等,但没有成功。

最佳答案

[From comments] Was hoping to find a CSS only way to indicate the label behind the first unchecked checkbox instead of going for a JavaScript approach and add extra fluff which might not be needed. If there's a way with CSS only with some reshuffling or adding some html element to the above please provide it.

只有当它们都在同一级别时才有可能,如果多个分组 DIV 减少到一个,那么它们都有相同的父级。

然后您可以为紧跟在未选中复选框之后的一个复选框设置颜色,并为复选框后面的每个标签重置它,该复选框是未选中复选框之后的同级...

.challenges input[type="checkbox"]:not(:checked) + label {
  color: lime;
}

.challenges input[type="checkbox"]:not(:checked) ~ input[type="checkbox"] + label {
  color: #000;
}
<div class="challenges">
  <input type="checkbox">
  <label for="">test 01</label>
  <input type="checkbox">
  <label for="">test 02</label>
  <input type="checkbox">
  <label for="">test 03</label>
  <input type="checkbox">
  <label for="">test 01</label>
  <input type="checkbox">
  <label for="">test 02</label>
  <input type="checkbox">
  <label for="">test 03</label>
  <input type="checkbox">
  <label for="">test 01</label>
  <input type="checkbox">
  <label for="">test 02</label>
  <input type="checkbox">
  <label for="">test 03</label>
  <input type="checkbox">
  <label for="">test 01</label>
  <input type="checkbox">
  <label for="">test 02</label>
  <input type="checkbox">
  <label for="">test 03</label>
</div>

关于css - 来自不同列表的第一个未选中的复选框 - 仅在可能的情况下使用 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53174629/

相关文章:

html - 联系表格字段在移动设备上不可点击 - 重定向到下一个字段

css - 调整卡片上图像和内容的大小

html - 如何用 CSS 显示网格线?

css - 如何在 GWT 中的另一个小部件(图像)之上显示一个小部件(Horizo​​ntalPanel)?

html - <link> 与 &lt;style&gt; 用于将 CSS 样式表包含在 HTML 文档中

jquery - 让 div 填充所有可用空间,3 列,固定宽度,可变高度

html - min-height 设置为 100% 如果我也设置 padding 会导致滚动条

html - 如何动态等于DIV高度

javascript - "crop"图像的脚本间歇性运行。

html - 无法覆盖 Bootstrap 字体大小