質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

1回答

719閲覧

cssのみのドロワーメニュー 押したボタンに応じて指定した要素を表示させたい

iKUMAAAA

総合スコア5

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

3クリップ

投稿2019/10/04 03:32

CSSのみのドロワーメニューで画面両側から 押したボタンに応じて指定した要素を出したいです。

< 理想な状態 >
右側のボタンを押すと右側から要素①が出現。
左側のボタンを押すと左側から要素②が出現。

< 現在の状態 >
右のサーチボタンを押した際には右側のみ出てくれるのですが、
左のハンバーガーメニューを選択すると右左両側の要素が同時に出てしまい 被ってしまいます。

まだまだ知識が浅いもので 情報不足かもしれませんが、
関係のありそうなコードを貼らせていただきます。

HTML

<div class="header"></div> <input type="checkbox" class="openSidebarMenu" id="openSidebarMenu"> <label for="openSidebarMenu" class="sidebarIconToggle"> <div class="spinner diagonal part-1"></div> <div class="spinner horizontal"></div> <div class="spinner diagonal part-2"></div> </label>  <div id="sidebarMenu"></div>  <input type="checkbox" class="openSidebarSearch" id="openSidebarSearch">  <label for="openSidebarSearch" class="sidebarIconSearch">  <i class="fas fa-search search_icon"></i>  </label>   <div id="sidebarSearch"></div>

CSS

.header { display: block; width: 100%; max-width: 100%; box-shadow: none; position: fixed; height: 50px; background: #2D2524; overflow: hidden; z-index: 10; } #sidebarMenu { position: relative; width: 100%; height: 100%; position: fixed; left: 0; margin-top: 50px; transform: translateX(-1500px); transition: transform 0.6s ease-in-out; background: #000000; } input[type="checkbox"]:checked ~ #sidebarMenu { transform: translateX(0); } #sidebarSearch { position: relative; height: 100%; left: 0; width: 100%; margin-top: 50px; transform: translateX(1500px); transition: transform 0.6s ease-in-out; background: #000000; color: #fff; position: fixed; text-align: center; } input[type="checkbox"]:checked ~ #sidebarSearch { transform: translateX(0); }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2019/10/04 07:37

ご提示のコードを試してみましたが、そもそもハンバーガーメニューが見えませんでした。 どこを直せば動きますか?
guest

回答1

0

今のままの、HTML構造とCSSだと、
左の input[type="checkbox"] が checked になった場合、input[type="checkbox"]:checked ~ #sidebarSearch が発動するはずです。

2つの input & label を、別の div で囲うなりすると期待した動作になると思います。

参考:
https://jsbin.com/voziyequpe/edit?html,css,output

投稿2019/11/14 03:18

tgfjt

総合スコア79

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問