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

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

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

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

Q&A

解決済

1回答

9204閲覧

input type=部分のクラスが効かない

退会済みユーザー

退会済みユーザー

総合スコア0

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

0グッド

0クリップ

投稿2016/05/16 05:31

編集2016/05/16 05:32

お世話になります。
前回、スマートフォン用サイドメニューの一部に子リストをつけたいとの事を質問させて頂き、以下の形でリスト部分を作りました。

HTML

<div class="slidemenu slidemenu-left"> <div class="slidemenu-body"> <ul class="slidemenu-content"> <li class="menu-item2"><a class="menu-item" href=""><b>WOMEN</b></a></li> <label for="Panel1"><li class="menu-item6"><a class="menu-item"><b>カテゴリ▼</b></a></label> <input type="checkbox" id="Panel1" class="on-off" /> <ul class="pull_menu"> <li class="menu-item10 pull_menu"><a href=""><font color="#333333">ワンピース</font></a></li> <li class="menu-item10 pull_menu"><a href=""><font color="#333333">トップス<span class="fs80">(カットソー・キャミ・タンクトップ)</font></a></li> <li class="menu-item10 pull_menu"><a href=""><font color="#333333">シャツ・ブラウス</font></a></li> <li class="menu-item10 pull_menu"><a href=""><font color="#333333">ニット</font></a></li> <li class="menu-item10 pull_menu"><a href=""><font color="#333333">カーディガン・ジレ・ベスト</font></a></li> <li class="menu-item10 pull_menu"><a href=""><font color="#333333">パーカー・スウェット</font></a></li> <li class="menu-item10 pull_menu"><a href=""><font color="#333333">アウター</font></a></li> </ul> </li> <label for="Panel2"><li class="menu-item6"><a class="menu-item"><b>ブランド▼</b></a></label> <input type="checkbox" id="Panel2" class="on-off group2" /> <li class="menu-item10 pull_menu"><a class="menu-item" href=""><font color="#333333">ブランド1</font></a></li> <li class="menu-item10 pull_menu"><a class="menu-item" href=""><font color="#333333">ブランド2</font></a></li> </ul> </li> </div> </div>

CSS

/*プルダウン*/ input[type="checkbox"].on-off{ display: none; } .pull_menu { -webkit-transition: all 0.5s; -moz-transition: all 0.5s; -ms-transition: all 0.5s; -o-transition: all 0.5s; transition: all 0.5s; margin: 0; padding: 0; list-style: none; } .pull_menu { padding: 0px; } input[type="checkbox"].on-off + ul{ height: 0; overflow: hidden; } input[type="checkbox"].on-off:checked + ul{ height: 580px; } input.group2 [type="checkbox"].on-off + ul{ height: 0; overflow: hidden; } input.group2 [type="checkbox"].on-off:checked + ul{ height: 1500px; }

試してみたところ、滑らかに動いたのですが、この使用はCSSで高さを指定しないといけないようで、input[type="checkbox"].on-off:checked + ul{
height: 580px;}←子リスト合計の高さ
となっています。

heightをautoにすると一応は効いて子リストはすべて表示されるのですが、なぜかアニメーションが効かなくなります…。
上記のHTMLのように二つ、高さの違う子リストの階層を作りたかったので二番目のinputにクラスを振ってみたのですが、こちらが効いていないようで高さが一番目のリストと同じになってしまいます。
書き方に問題があればご指摘頂きたく思います…。

前回の質問でもこちらの内容を追記しておりますが、今回はJSではなくCSSの質問かと思いましたので再度質問させて頂きました。よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

<input type="checkbox" id="Panel2" class="on-off group2" />の後の<ul class="pull_menu">が抜けているようです。
cssの方はinput[type="checkbox"].on-off + ulの高さをheight:auto;と初期値に戻すのではダメでしょうか?

css

1input[type="checkbox"].on-off{ 2 display: none; 3} 4 5.pull_menu { 6 -webkit-transition: all 0.5s; 7 -moz-transition: all 0.5s; 8 -ms-transition: all 0.5s; 9 -o-transition: all 0.5s; 10 transition: all 0.5s; 11 margin: 0; 12 padding: 0; 13 list-style: none; 14} 15 16.pull_menu { 17 padding: 0px; 18} 19 20input[type="checkbox"].on-off + ul{ 21 height: 0; 22 overflow: hidden; 23} 24 25input[type="checkbox"].on-off:checked + ul{ 26 height: auto; 27}

高さの指定が必須であればidが設定されているのでこれを使ってしまうほうがいいかと思います。

css

1 2#Panel1:checked + ul{ 3 height: 580px; 4} 5 6#Panel2:checked + ul{ 7 height: 1500px; 8}

投稿2016/05/16 07:17

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2016/05/16 07:21

重要なことが抜けてました input.group2 [type="checkbox"].on-off ですがスペースが空いてるものは子孫セレクタになりますので今回の場合なら input[type="checkbox"].on-off.group2 になるかと思います。
退会済みユーザー

退会済みユーザー

2016/05/16 09:29

解答頂きありがとうございました。 アドバイス頂いたやり方で書きましたら、上手く作動しました。ありがとうございます! 追記頂いた、セレクタの書き方も参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問