html - 没有兄弟的纯 css 切换

标签 html css css-selectors toggle siblings

将复选框用于 css 切换,此代码有效...单击复选框时 div 消失...

input:checked ~ #test{display:none}

<div id="main">
<input type="checkbox">Click Me
<div id="test">This is a test</div>
</div> 

但是在这里,它不起作用,因为 TEST div 不是兄弟,对吧?它在主分区之外...

input:checked ~ #test{display:none}

<div id="main">
<input type="checkbox">Click Me
</div> 
<div id="test">This is a test</div>

有没有办法只用 css 就可以完成这项工作?我想如果我删除 ~ 那么任何 ID = TEST 的 div 都会消失,无论它在哪里,但事实并非如此。

最佳答案

这种作品不错

触发器在你的 main 中,但实际的复选框必须与“测试”处于同一级别

#main {white-space:nowrap;}
#check {
  display:none;
  }
p {display:inline-block;}
.fake{
  display:inline-block;
  width: 10px;
  height: 10px;
  background:lightgray;
  }
#check[type=checkbox]:checked + #main + #test {
  display:none;
  }
#check[type=checkbox]:checked + #main > label {
   background: gray;
}
<input id="check" type="checkbox">
<div id="main">
  <label class="fake" for="check"></label>
  <p>Click Me</p>
</div> 
<div id="test">This is a test</div>

关于html - 没有兄弟的纯 css 切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39212235/

相关文章:

javascript - 开始使用 sigma 示例 - 无法让它工作

javascript - jQuery动画 anchor

html - 媒体查询被原始忽略(更高的 "query")

html - 使用具有多个 id 的 H 选择器时如何缩短 CSS?

html - 如何选择两个一组的元素并应用公共(public)边框?

python - lxml: cssselect(): AttributeError: 'lxml.etree._Element' 对象没有属性 'cssselect'

html - 在 HTML 中显示角度符号

html - CSS Sidebar - 内容区域需要边距,但宽度超出了带有滚动条的框架

javascript - PHP-如何在javascript确认框中获取表格内容?

c# - 在 div 中对齐文本框和标签和按钮