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

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

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

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

CSS

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

Q&A

2回答

2038閲覧

このコード CSSタブの内容、仕組みがよくわからない

sony

総合スコア0

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/04/30 09:25

編集2020/04/30 10:29

質問したいこと

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

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

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

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

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

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

new1ro

2020/04/30 09:29

・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の内容も追記してほしいです。
sony

2020/04/30 09:52

わかりました <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>
sony

2020/04/30 09:53

これからは事前に書いておきます、ありがとうございます
kei344

2020/04/30 10:03

質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
sony

2020/04/30 10:09

ありがとうございます、コードブロックで囲ませていただきました
kei344

2020/04/30 10:11

バッククオート3つ(```)の前後には改行を入れてください。PCであれば記入エリアの右部分あたりにリアルタイムに結果が表示されていると思うので、そこを見ながら調整してください。 また、コードブロックの開始部分を「```HTML」「```JavaScript」にすると言語にあわせたコードハイライトも利用出来ます。
sony

2020/04/30 10:15

ありがとうございます! コードハイライトを使ってみました、これであってますか?
kei344

2020/04/30 14:25

あってます、編集ありがとうございます。質問について、今はどの部分がわかりませんか?「質問するときのヒント」を読んでより具体的に「わからない部分」を見つけてみてください。 【質問するときのヒント|teratail(テラテイル)】 https://teratail.com/help/question-tips
sony

2020/05/01 05:37

:nth-child(3):checke などのこの数字の意味がわらなくて。。
guest

回答2

0

推測で回答してみます。

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 display: block; /* おそらくこうなっている */ 9}

HTMLのつくりとして、

<div class="tab"> <input><!-- 1番目、first-child --> <div></div> <input><!-- 3番目、:nth-child(3) --> <div></div> <input><!-- 5番目、:nth-child(5) --> <div></div> ... <input><!-- 11番目、:nth-child(11) --> <div></div> <div class="cp_tabpanels"> <div class="cp_tabpanel">コンテンツ</div><!-- 1番目、first-child --> <div class="cp_tabpanel">コンテンツ</div><!-- 2番目、:nth-child(2) --> <div class="cp_tabpanel">コンテンツ</div><!-- 3番目、:nth-child(3) --> ... <> </div> </div> <div>

投稿2020/04/30 09:35

new1ro

総合スコア4528

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

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

sony

2020/04/30 09:47

そうですそうです、そのCSS部分の意味が、どういう風に意味してるのかがわからなくて、、なんとなく順番などやHTMlで中身とタブ部分を組み合わせたりしてるんだろうなぁとはわかるんですけど、、、
guest

0

このあたりをみてください。
チェックされたinput要素とその後ろにおいてある.cp_tabpanelsの何番目の子要素とを紐付けています。

【一般兄弟結合子 - CSS: カスケーディングスタイルシート | MDN】
https://developer.mozilla.org/ja/docs/Web/CSS/General_sibling_combinator

【:checked - CSS: カスケーディングスタイルシート | MDN】
https://developer.mozilla.org/ja/docs/Web/CSS/:checked

【CSS セレクター - CSS: カスケーディングスタイルシート | MDN】
https://developer.mozilla.org/ja/docs/Web/CSS/CSS_Selectors

【CSSのセレクタとは?覚えておきたい25種類と書き方】
https://saruwakakun.com/html-css/reference/selector

投稿2020/04/30 09:55

kei344

総合スコア69407

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問