ギャラリーや商品紹介に最適なタブ+スライダー
タブをクリックすると対応する画像スライドが切り替わり、さらにスライド操作に合わせてタブも自動更新されます。 直感的でわかりやすい動作は、商品紹介や画像ギャラリーにぴったりです。 コードはARIA対応済みでアクセシブル、コピペですぐ使える形に仕上げています。
- タブ操作とスライド操作が相互に連動
- ギャラリー・商品紹介・特集ページに活用可能
- Swiperライブラリで滑らかな切り替え
- ARIA属性対応+CSSスコープ済みで安心して利用可
コードについて
本記事のコードは AI(ChatGPT)による生成をベースに作成・調整しています。ご利用の環境でテストの上ご使用ください。
免責 本コードの利用に伴う不具合・損害について、当サイトは責任を負いません。自己責任にてご利用ください。
免責 本コードの利用に伴う不具合・損害について、当サイトは責任を負いません。自己責任にてご利用ください。
デモ
コードをコピーして使おう!
/* =========================
タブ+Swiper連動UI用CSS
(#gallery-section にスコープ)
========================= */
/* スコープの親にも幅制限を与えて中央寄せ */
#gallery-section{
max-width:640px; /* ギャラリー全体の横幅上限を640pxに制限 */
margin:0 auto; /* 左右中央寄せ(autoマージンで均等配置) */
padding:0 16px; /* 左右に16pxの余白を追加(小画面時の見切れ防止) */
}
/* ギャラリー全体を囲むラッパー */
#gallery-section .gallery{
max-width:640px; /* 横幅の上限を640pxに制限 */
margin:0 auto; /* 左右中央寄せ */
}
/* タブボタン群のコンテナ */
#gallery-section .tabs{
display:flex; /* 子要素(ボタン)を横並びに配置 */
gap:8px; /* タブ同士の間隔を8pxに設定 */
margin-bottom:12px; /* 下に余白を入れてスライダーと分離 */
}
/* 各タブボタンの基本スタイル */
#gallery-section .tabs button{
flex:1; /* 全タブを均等幅に広げる */
padding:6px; /* ボタン内側の余白を設定 */
border:2px solid transparent; /* 初期状態の枠線は透明 */
border-radius:6px; /* 角を6px丸めて柔らかい印象に */
background:#fff; /* 背景色は白 */
cursor:pointer; /* ホバー時にポインタカーソル表示 */
}
/* 選択されているタブ(aria-selected="true") */
#gallery-section .tabs button[aria-selected="true"]{
border-color:#0b6bff; /* 枠線を青にして強調 */
background:#e0f0ff; /* 背景を淡い青にして選択感を出す */
}
/* Swiper本体のコンテナ */
#gallery-section .swiper{
width:100%; /* 横幅を親要素いっぱいに広げる */
border:1px solid #e5e7eb; /* 外枠に薄いグレーの線 */
border-radius:10px; /* 角を10px丸めてデザイン性アップ */
overflow:hidden; /* 枠からはみ出した要素を非表示に */
}
/* 各スライドに含まれる画像 */
#gallery-section .swiper-slide img{
width:100%; /* 画像をスライド幅にフィットさせる */
height:auto; /* アスペクト比を維持してリサイズ */
display:block; /* インライン要素の余白を防ぐためブロック化 */
}
コメント