CSS':已检查'无效

时间:2016-04-30 13:26:54

标签: html css

HTML

...
<input id ="nav-toggle" type="checkbox">
<label id ="nav-toggle-label" for="nav-toggle">
    <img src="ic_view_list_white_18px.svg">
</label>
...

CSS

...    
header #nav-toggle {
    display: none;
}
header #nav-toggle-label {
    position: absolute;
    top: 1.3ch;
    cursor: pointer;
}
#nav-toggle:checked + header + article {
    margin-left: 20ch;
}
...

尝试创建一个复选框,通过向右滑动navheader来切换侧边栏(article)。 由于某些原因,它不起作用,不胜感激任何帮助。

2 个答案:

答案 0 :(得分:1)

+相邻兄弟选择器
您的相邻兄弟不是<header>而是<label> 如果您的<article>是后来的兄弟元素,请使用~ 常规同级组合选择器...

或者这样做:

#nav-toggle { /* remove "header" */
    display: none;
}
#nav-toggle-label { /* remove "header" */
    position: absolute;
    top: 1.3ch;
    cursor: pointer;
}
#nav-toggle:checked + article { /* remove the "+header" */
    margin-left: 20ch;
}
<header>
  
  <!-- LABEL IS INSIDE <header>... -->
  
  <label id ="nav-toggle-label" for="nav-toggle">
    <img src="//placehold.it/50x50">
  </label>
  
</header>

<!-- BUT PLACE YOUR CHECKBOX RIGHT BEFORE THE DESIRED TOGGLABLE ELEMENT -->

<input id="nav-toggle" type="checkbox">
<article>THIS IS ARTICLE</article>

现在上述作品导致+选择立即关闭下一个兄弟的复选框:article

答案 1 :(得分:-1)

你在yur css的导航切换之前忘记了#。