質問したいこと
CSSタブを作りたくて、調べていたところ、このコードを見つけたのですが
1時間ほど触ったのですがよくわからなかったので、質問させていただきました。
CSS部分の意味が、、なんとなく順番などやHTMlで中身とタブ部分を組み合わせたりしてるんだろうなぁとはわかるんですけど、どういう風に意味してるのかがわからなくて、
該当のソースコード
CSS
1 .tab .cp_tabpanel {display: none;} 2 .tab > input:first-child:checked ~ .cp_tabpanels > .cp_tabpanel:first-child, 3 .tab > input:nth-child(3):checked ~ .cp_tabpanels > .cp_tabpanel:nth-child(2), 4 .tab > input:nth-child(5):checked ~ .cp_tabpanels > .cp_tabpanel:nth-child(3), 5 .tab > input:nth-child(7):checked ~ .cp_tabpanels > .cp_tabpanel:nth-child(4), 6 .tab > input:nth-child(9):checked ~ .cp_tabpanels > .cp_tabpanel:nth-child(5), 7 .tab > input:nth-child(11):checked ~ .cp_tabpanels > .cp_tabpanel:nth-child(6) 8
HTML部分
HTML
1 <div class="tab"> 2 <input type="radio" name="cp_tab" id="tab1_1"> 3 <label for="tab1_1"></label> 4 <input type="radio" name="cp_tab" id="tab1_2"> 5 <label for="tab1_2"></label> 6 <input type="radio" name="cp_tab" id="tab1_3"> 7 <label for="tab1_3"></label> 8 <input type="radio" name="cp_tab" id="tab1_4"> 9 <label for="tab1_4"></label> 10 <hr> 11 <div class="cp_tabpanels"> 12 <div id="first_tab01" class="cp_tabpanel"> 13 <h2></h2> 14 <p><p> 15 </div> 16 <div id="second_tab01" class="cp_tabpanel"> 17 <h2></h2> 18 <p</p> 19 </div> 20 <div id="third_tab01" class="cp_tabpanel"> 21 <h2></h2> 22 <p></p> 23 </div> 24 <div id="force_tab01" class="cp_tabpanel"> 25 <h2></h2> 26 <p></p> 27 <ul> 28
・HTML側のソースコードの追記があると、回答を得やすいと思います。
.tab > input:first-child:checked ~ .cp_tabpanels > .cp_tabpanel:first-child,
.tab > input:nth-child(3):checked ~ .cp_tabpanels > .cp_tabpanel:nth-child(2),
.tab > input:nth-child(5):checked ~ .cp_tabpanels > .cp_tabpanel:nth-child(3),
.tab > input:nth-child(7):checked ~ .cp_tabpanels > .cp_tabpanel:nth-child(4),
.tab > input:nth-child(9):checked ~ .cp_tabpanels > .cp_tabpanel:nth-child(5),
.tab > input:nth-child(11):checked ~ .cp_tabpanels > .cp_tabpanel:nth-child(6)
↑上記のセレクタによって指定されるCSSの内容も追記してほしいです。
わかりました <div class="tab">
<input type="radio" name="cp_tab" id="tab1_1">
<label for="tab1_1"></label>
<input type="radio" name="cp_tab" id="tab1_2">
<label for="tab1_2"></label>
<input type="radio" name="cp_tab" id="tab1_3">
<label for="tab1_3"></label>
<input type="radio" name="cp_tab" id="tab1_4">
<label for="tab1_4"></label>
<hr>
<div class="cp_tabpanels">
<div id="first_tab01" class="cp_tabpanel">
<h2></h2>
<p>
</div>
<div id="second_tab01" class="cp_tabpanel">
<h2></h2>
<p</p>
</div>
<div id="third_tab01" class="cp_tabpanel">
<h2></h2>
<p></p>
</div>
<div id="force_tab01" class="cp_tabpanel">
<h2></h2>
<p></p>
<ul>
これからは事前に書いておきます、ありがとうございます
質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
ありがとうございます、コードブロックで囲ませていただきました
バッククオート3つ(```)の前後には改行を入れてください。PCであれば記入エリアの右部分あたりにリアルタイムに結果が表示されていると思うので、そこを見ながら調整してください。
また、コードブロックの開始部分を「```HTML」「```JavaScript」にすると言語にあわせたコードハイライトも利用出来ます。
ありがとうございます! コードハイライトを使ってみました、これであってますか?
あってます、編集ありがとうございます。質問について、今はどの部分がわかりませんか?「質問するときのヒント」を読んでより具体的に「わからない部分」を見つけてみてください。
【質問するときのヒント|teratail(テラテイル)】
https://teratail.com/help/question-tips
:nth-child(3):checke
などのこの数字の意味がわらなくて。。
私が提示した「セレクタ」については読みましたか?:nth-childも掲載されていますよ。
https://developer.mozilla.org/ja/docs/Web/CSS/CSS_Selectors