「HTML」タブ

これだけのためにjQuery使ってた気がするけど、今ではCSSだけでも作れるっぽい。

というかCSSの書き方としては昔からある

各タブは、チェックボックスとこれに連携するラベルで構成する。

<input id="{タブ名}_tab" type="radio" name="tab_item" checked>
<label class="tab_item" for="{タブ名}_tab">{タブ・タイトル}</label>

チェックボックス 自体は表示する必要は無い。

input[name="tab_item"] {
    display: none;
}

タブことラベルをクリックすると チェックボックス の状態がcheckedに切り替わるので、チェックボックスに対応する兄弟のブロックを表示。

ここは、タブ名が変わったり増えたりするる度に修正しないといけない。

#{タブ名1}_tab:checked~#{タブ名1}_content,
#{タブ名2}_tab:checked~#{タブ名2}_content,
#{タブ名3}_tab:checked~#{タブ名3}_content {
/* 表示 */
    display: block;
/* または上下左右センタリング */
    display: flex;
    justify-content: center;
    align-items: center;
}

cssに正規表現はあるけど、ペアだけ対象にする書き方は無い。

[id$="_tab"]:checked  ~  [id$="_ content] {
どのタブをクリックしても、全部表示しようとする
}

なので 兄弟のブロック は初期非表示。

.tab_content {
    display: none;
    ...
}



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA