CSSだけでページ内タブ切り替えを複数したい。
- 評価
- クリップ 0
- VIEW 1,544

退会済みユーザー
前提・実現したいこと
CSSだけでページ内タブ切り替えをしていました。
以下のようにAをクリックしたらA-1、A-2、A-3のbuttonに装飾したテキストが出てきました。ここまではできたのですが、やりたいことは、
更にこのA-1を押したらA-1-1、A-1-2、A-1-3 A-2を押したらA-2-1、A-2-2、A-2-3といった、さらにページ内タブ切り替えをしたいのですが、どうやってもA-1を押したら最初のA、B、Cが表示されてるだけの表示に戻ってしまいます。
まだまだJSがよくわかっていないのでCSSのみでやってみたのですが、どうやったらできるでしょうか....。
社内に相談できる人がおらず、一人ではどうにもならないのでご相談させていただきました。
最終的にはこのA-1-1をさらにクリックしたら軽い商品詳細ページみたいなものになるので、1ページ内でページ内タブ切り替えを3回したいです。
やはりjsのほうが簡単にできるのでしょうか?。
HTML
<input id="tab-A" type="radio" name="tab_item" checked>
<label class="tab_box" for="tab-A">A</label>
<input id="tab-B" type="radio" name="tab_item">
<label class="tab_box" for="tab-B">B</label>
<input id="tab-C" type="radio" name="tab_item">
<label class="tab_box" for="tab-C">C</label>
<!--Aをクリックしたら出てくるcontents-->
<div class="tab_content" id="tab-1_content">
<input id="tab-A-1" type="radio" name="tab_item" checked>
<label class="tab_contents" for="tab-A-1">A-1</label>
<input id="tab-A-2" type="radio" name="tab_item">
<label class="tab_contents" for="tab-A-2">A-2</label>
<input id="tab-A-3" type="radio" name="tab_item">
<label class="tab_contents" for="tab-A-3">A-3</label>
</div>
<!--A-1をクリックしたら出てくるcontents-->
<div class="tab_content" id="tab-1-1_content">
<input id="tab-A-1-1" type="radio" name="tab_item" checked>
<label class="tab_contents" for="tab-A-1-1">A-1-1</label>
<input id="tab-A-1-2" type="radio" name="tab_item">
<label class="tab_contents" for="tab-A-1-2">A-1-2</label>
<input id="tab-A-1-3" type="radio" name="tab_item" checked>
<label class="tab_contents" for="tab-A-1-3">A-1-3</label>
</div>
CSS
/*タブのスタイル*/
.tab_item {
width: 178px;
height: 50px;
background-color: #d9d9d9;
line-height: 50px;
font-size: 13px;
text-align: center;
color: #565656;
display: block;
float: left;
text-align: center;
font-weight: bold;
transition: all 0.2s ease;
margin-bottom:5px;
border: 1px solid #000;
margin-right: 15px;
}
.tab_item_last{
width:178px;
height: 50px;
background-color: #d9d9d9;
line-height: 50px;
font-size: 13px;
text-align: center;
color: #565656;
display: block;
float: left;
text-align: center;
font-weight: bold;
transition: all 0.2s ease;
margin-bottom:5px;
border: 1px solid #000;
margin-right:0;
}
.tab_item:hover,
.tab_item_last:hover{
opacity: 0.75;
}
/*ラジオボタンを全て消す*/
input[name="tab_item"] {
display: none;
}
/*タブ切り替えの中身のスタイル*/
.tab_content {
display: none;
padding: 40px 0px;
clear: both;
overflow: hidden;
}
/*選択されているタブのコンテンツのみを表示*/
#tab-A:checked ~ #tab-1_content,
#tab-A-1:checked ~ #tab-1-1_content,
{
display: block;
}
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.35%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
azuapricot
2019/08/21 16:33
「納期迫っていて」
とか回答者からしてみれば言ってしまえば知ったこっちゃないし、リスケしてもらえ、無理なら無理といえ、で終わりなのであんまり書かないほうがいいと思います
退会済みユーザー
2019/08/21 16:38
ご指摘ありがとうございます!