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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

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

CSS

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

Q&A

解決済

1回答

2687閲覧

ボタンを押すとさらにボタンが出てくる階層構造

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/01/09 06:44

編集2020/01/09 07:25

前提・実現したいこと

以下のような階層構造を作成しようとしています。
Aボタンを押すとB・Cが現れ、B・Cボタンを押すと、それぞれB’・B"、C’・C"が現れるようなプログラムを作ろうとしています。

Aを押すと、Bが増殖するコードは以下のようにできますが、画像のようにはうまくできません。

image

コード

HTML

1<!DOCTYPE html> 2<html> 3<head><meta charset="utf-8"> 4<link rel="stylesheet"type="text/css"href="design.css"> 5 <title>clicktest</title> 6</head> 7 8 9<body> 10<div class="hidden_box"> 11 <label for="label1">A</label> 12 <input type="checkbox" id="label1"/> 13 <div class="hidden_show"> 14 15 <p> 16 17 <div class="hidden_box"> 18 <label for="label12">B</label> 19 <input type="checkbox" id="label12"/> 20 <div class="hidden_show"> 21 22 <div class="hidden_box"> 23 <label for="label13">B'</label> 24 <input type="checkbox" id="label13"/> 25 <div class="hidden_show"> 26 27 </p> 28 29 30 </div> 31</div> 32 <br> 33 34 </body> 35</html> 36

CSS

1.hidden_box { 2 margin: 2em 0; 3 padding: 0; 4} 5 6 7.hidden_box label { 8 padding: 15px; 9 font-weight: bold; 10 border: solid 2px black; 11 cursor :pointer; 12} 13 14 15.hidden_box label:hover { 16 background: #efefef; 17} 18 19 20.hidden_box input { 21 display: none; 22} 23 24 25.hidden_box .hidden_show { 26 height: 0; 27 padding: 0; 28 overflow: hidden; 29 opacity: 0; 30 transition: 0.8s; 31} 32 33 34.hidden_box input:checked ~ .hidden_show { 35 padding: 10px 0; 36 height: auto; 37 opacity: 1; 38}

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

yambejp

2020/01/09 07:23

法則性はあるのでしょうか? A→B,CでB→B'だと動きがばらばらです B'はさらに増殖しないのですか?
kei344

2020/01/09 07:27

ご自身で試されたコードを質問文に追記し、「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを具体的に追記されたほうが回答が望めると思います。
退会済みユーザー

退会済みユーザー

2020/01/09 07:27

A→B,C B→B' ,B" C→C',C" の動きになります。 B'もさらに増殖できれば…と考えていますが,今のところ予定はないです。
yambejp

2020/01/09 07:30

では最初から7つ作っておいて使わないのを隠せばいいでしょう
guest

回答1

0

ベストアンサー

こんな感じでどうでしょうか?

投稿2020/01/09 08:52

編集2020/01/09 08:56
yambejp

総合スコア114843

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

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

yambejp

2020/01/09 08:52

<style> .hide{display:none} [data-parent]{display:none} #a:checked ~ * [data-parent=a]{display:inline} #a:checked ~ #b:checked ~ * [data-parent=b]{display:inline} #a:checked ~ #b:checked ~ #b1:checked ~ * [data-parent=b1]{display:inline} #a:checked ~ #b:checked ~ #b2:checked ~ * [data-parent=b2]{display:inline} #a:checked ~ #c:checked ~ * [data-parent=c]{display:inline} #a:checked ~ #c:checked ~ #c1:checked ~ * [data-parent=c1]{display:inline} #a:checked ~ #c:checked ~ #c2:checked ~ * [data-parent=c2]{display:inline} </style>
yambejp

2020/01/09 08:52

<input type="checkbox" id="a" class="hide"> <input type="checkbox" id="b" class="hide"> <input type="checkbox" id="c" class="hide"> <input type="checkbox" id="b1" class="hide"> <input type="checkbox" id="b2" class="hide"> <input type="checkbox" id="c1" class="hide"> <input type="checkbox" id="c2" class="hide"> <div> <label for="a">a</label> <label for="b" data-parent="a">b</label> <label for="b1" data-parent="b">b1</label> <span data-parent="b1">b11</span> <span data-parent="b1">b12</span> <span data-parent="b1">b13</span> <label for="b2" data-parent="b">b2</label> <span data-parent="b2">b21</span> <span data-parent="b2">b22</span> <span data-parent="b2">b23</span> <label for="c" data-parent="a">c</label> <label for="c1" data-parent="c">c1</label> <span data-parent="c1">c11</span> <span data-parent="c1">c12</span> <span data-parent="c1">c13</span> <label for="c2" data-parent="c">c2</label> <span data-parent="c2">c21</span> <span data-parent="c2">c22</span> <span data-parent="c2">c23</span> </div>
退会済みユーザー

退会済みユーザー

2020/01/10 04:21

ありがとうございます!トライしてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問