2017-12-23 9 views
0

私のモバイルナビバーを表示するには、チェックボックス - トリックを使用します。何とか見えないチェックボックスがチェックされていても、h1は表示されません。私は何を間違えたのですか?チェックボックス - トリックが機能しない

#label { 
 
    margin-left: auto; 
 
    margin-right: auto; 
 
    color: #000000; 
 
    font-size: 35px; 
 
    cursor: pointer; 
 
    width: 47px; 
 
} 
 

 

 
h1 { 
 
display: none 
 
} 
 
#toggle { 
 
    display: none; 
 
} 
 

 

 
#toggle:checked + h1 { 
 
\t \t display: block; 
 
} 
 
<div id="hamburgermenu"> 
 
    <label id="label" for="toggle">&#9776;</label> 
 
    <input id="toggle" type="checkbox"> 
 
</div> 
 

 
<h1>DEMO ELEMENT</h1>

+0

表示できません:表示されない要素がある場合、その子孫もすべて非表示です。あなたのh1はあなたの(目に見えない)チェックボックスの子要素なので、それ自体はブロックとして表示されますが、コンテナ全体(チェックボックス)は全く見えません。また、これは有効なHTMLではありません。チェックボックスには他の子要素は一切ありません。 – Psi

+0

@Psiどうやって、h1がチェックボックスの子になるのですか?誤解を招くような情報を提供しないでください。その理由はここにあるCSSセレクタです。 –

+0

この '.checked'のJavaScriptを使用すると、' 'click''の代わりに' change'を聞いた後に 'boolean'が返されます。 –

答えて

4

あなたはsibling CSS selectorある "+" を使用しているが、<h1>はあなたのチェックボックスの兄弟ではありません。チェックボックスの親コンテナの兄弟はです。あなたはそれについて行く3つの方法があります。

最初の方法:

#label { 
 
    margin-left: auto; 
 
    margin-right: auto; 
 
    color: #000000; 
 
    font-size: 35px; 
 
    cursor: pointer; 
 
    width: 47px; 
 
} 
 

 
h1 { 
 
    display: none 
 
} 
 

 
#toggle { 
 
    display: none; 
 
} 
 

 
#toggle:checked+h1 { 
 
    display: block; 
 
}
<div id="hamburgermenu"> 
 
<label id="label" for="toggle">&#9776;</label> 
 
<input id="toggle" type="checkbox"> 
 

 
<h1>DEMO ELEMENT</h1> 
 
</div>

内の第二の方法でそれを置くことによって、その入力の兄弟ください:アウト入力を取ることによって、その入力の兄弟くださいの容器

#label { 
 
    margin-left: auto; 
 
    margin-right: auto; 
 
    color: #000000; 
 
    font-size: 35px; 
 
    cursor: pointer; 
 
    width: 47px; 
 
} 
 

 
h1 { 
 
    display: none 
 
} 
 

 
#toggle { 
 
    display: none; 
 
} 
 

 
#toggle:checked + h1 { 
 
    display: block; 
 
}
<div id="hamburgermenu"> 
 
<label id="label" for="toggle">&#9776;</label> 
 
</div> 
 
<input id="toggle" type="checkbox"> 
 
<h1>DEMO ELEMENT</h1>

第三の道: JavaScriptを使用してください。

+0

チェックボックスのみをdivの外に移動する必要があります。ラベルは内側に留まります。 –

+0

@RenéOh、それはすごいです:) –

関連する問題