如果使用 css 选中另一个复选框,如何隐藏一个复选框?

How to hide a checkbox if another checkbox is checked using css?

I'm having problems getting a checkbox to hide another div using CSS when that checkbox is selected.例如,我有两个复选框

当复选框 1 被选中时,它应该隐藏复选框 2 但它没有。关于我做错了什么的想法?

这是我到目前为止所做的

#cover_photo_set_featured input:checked ~ #one_image_feature_image label {display:none}
<div id="cover_photo_set_featured">
<input type="checkbox" id="acf-block_601d8b4a91a27-field_5f8bec0fb8152-sfi" name="acf-block_601d8b4a91a27[field_5f8bec0fb8152][]" value="sfi">Checkbox 1
</div>
<div id="one_image_feature_image">
<label>
<input type="checkbox" id="acf-block_601d8b6591a28-field_5f8cf27e7bf5f-one_img_set_feat_img" name="acf-block_601d8b6591a28[field_5f8cf27e7bf5f][]" value="one_img_set_feat_img">Checkbox 2
</label>
</div>

您无法在 CSS 中选择更高级别。

为此,您必须将要隐藏的 <input><div> 设置为至少相同的级别。

所以我们需要避免 <div id="cover_photo_set_featured"> 元素成为 .

的父元素

但是因为我看到您正在使用 ACF,所以我在它前面添加了 input 以便能够 select 它与 CSS,因此您可以轻松地 select 下一个 <input> 使用“+” select 或

我们现在可以将“display: none”和“aria-hidden”属性赋予<div>,这纯粹是为了帮助。

#cover_photo_set_featured {
  display: none;
}

#cover_photo_set_featured+input:checked~#one_image_feature_image label {
  display: none
}
<div id="cover_photo_set_featured" aria-hidden="true"></div>
<input type="checkbox" id="acf-block_601d8b4a91a27-field_5f8bec0fb8152-sfi" name="acf-block_601d8b4a91a27[field_5f8bec0fb8152][]" value="sfi">Checkbox 1

<div id="one_image_feature_image">
  <label>
     <input type="checkbox" id="acf-block_601d8b6591a28-field_5f8cf27e7bf5f-one_img_set_feat_img" name="acf-block_601d8b6591a28[field_5f8cf27e7bf5f][]" value="one_img_set_feat_img">Checkbox 2
  </label>
</div>