【つぶやき】タブでコンテンツの表示 | プラグインなしでやってみた!
当サイトの一部のページでタブボタンでコンテンツの表示切り替えられるようにしています。
今まではプラグインを使用して「タブ切り替え」を作成していましたが…自分好みのデザインにできず悩んでいました。そこで…
やっぱり自分好みのデザインにするには「自作」するしかないよね!難しそうだけどやってみよう!
と思いタブを自作してみることにしました。
タブを作るには?
「タブ」を作る方法を調べると主に3つの方法があるようです。
- プラグイン
- CSS
- JavaScript
今回はプラグインを使わずに作りたいので、「CSS」か「JavaScript」のどちらかなのですが…いろいろ調べてみると「CSS」はHTMLとCSSの2つで作れるので「楽かな?」とも思いましたが、タブを追加する場合HTMLとCSSを逐一増やさなければならないためちょっと手間です(^^;)
JavaScriptはJavaScript(JS)、jQualityとか種類(?)がありますが、タブを作るにはHTMLとJavaScript、CSSを設定する必要がありますが、タブの追加はHTMLだけで簡単にできます。
それでどっちにしたの?
実は以前「CSS」でタブ設置したけど…やっぱり追加が面倒でプラグインに戻しちゃったんだよねwだから今回はJavaScriptにしました。
タブを作ってみた!
とはいえ、私はJavaScriptに関しての知識がないので下の記事のコードを使わせてもらいました!
結耶さん、jQueryはJavaScriptなの?
そうみたいだよ。私もよく解らないけどね(^^;)
jQueryとは?
jQuery(ジェイクエリー)は、ウェブブラウザ用のJavaScriptコードをより容易に記述できるようにするために設計されたJavaScriptライブラリである。
引用:Wikipedia「jQuery」より引用
ということでJavaScript(jQuery)、HTML、CSSコードをコピーして所定の場所に貼り付け。
jQueryコードの挿入先は上の記事でも紹介されています。
jQuery、HTMLコードについては特に変更するところはありません。CSSもデザインがOKなら色をご自分のサイトに合わせて変更するだけでいいと思います。
へぇ~これで設置できるんだねぇ。思ったより簡単だね。
うんうん。簡単でしたね。まぁ、私はデザインを少しいじったけどねw
デザインを変えてみた!
私はコピペしたCSSをベースに上のようにしてみました(*^^*) ボタンをクリックすると吹き出し風になるようにしてみました。
※参考にCSSを載せておきます。
/*--------------------------------------
タブ切り替え
--------------------------------------*/
.tab-wrap{
margin-bottom: 40px;
}
.tab-group{
display: flex;
justify-content: center;
flex-wrap: wrap;
align-items: flex-end;
}
/*タブボタン*/
.tab{
flex-grow: 1;
background: #FFF; /*タブのの背景色*/
border:1px solid #a61919; /*枠線の太さ 線種 色*/
color: #000; /*文字の色*/
cursor: pointer;
display: inline-block;
font-size: 13px; /*文字サイズ*/
font-weight: bold; /*太字*/
margin: 0 5px 15px;
padding: 3px 8px;
text-align: center;
transition: 1s;
vertical-align: bottom;
}
/* ボタン クリック(選択時)*/
.tab.is-active{
color:#FFF; /*文字の色*/
transition: 1s;
background:#a61919; /*背景色*/
position:relative;
}
.tab.is-active:after{ /*三角部分*/
content: "";
position: absolute;
bottom: -24px;
left: 50%;
margin-left: -15px;
border: 12px solid transparent;
border-top: 12px solid #a61919;
}
/*コンテンツ表示部分*/
.panel-group{
min-height:100px;
margin-top:15px;
border-top: 5px solid #a61919;
border-bottom: 5px solid #a61919;
padding: 10px;
}
.panel{
display:none;
}
.panel.is-show{
display:block;
}
タブを追加する
結耶~、タブを追加するにはどうしたらいいの?ついでに教えてよ~。
タブを追加するにはHTMLのボタンとコンテンツ部分を追加すればいいんだよ。
※ボタン部分
<div class="tab"> タブ </div>
※コンテンツ表示部分
<div class="panel"> コンテンツ </div>
ちなみに
ちなみに私が使わせて貰ったHTMLコードでタブボタンにdivga使われています。
他の記事をみるとdivではなくulを使っているものが多いです。なので試しにdivをulに変えてみました。
<ul class="tab-group">
<li class="tab is-active">タブ1</li>
<li class="tab">タブ2</li>
<li class="tab">タブ3</li>
</ul>
ulに変えても少し余白などの微調整が必要ですが、特に問題ありませんでしたw
最後に
今回は「タブ」をJavaScript(jQuery)で実装してみたので、備忘録と紹介を兼ねて書いてみました。
これで私の悩みも解消しそうです(*^^*)
「私はCSSの方がいいな~」という方は検索すると解説(コピペOK)しているサイトがたくさんあるのでそちらを参考にしてください。
ディスカッション
コメント一覧
はじめまして。
タブ切り替えのカスタマイズを探してこちらに気になり行き着きました。
タブを都道府県で表示してるのですが、最後のボックスが大きくならないようにするにはCSSで変更出来ますかね?
https://xs164901.xsrv.jp/2021/11/16/tab/
> コウイチさん
こんばんは。はじめまして。
コメントありがとうございます。
「最後のボックス」とはコンテンツの表示部分でしょうか?
コンテンツ表示部分ならCSSの「コンテンツ表示部分」の中のmin-height:100px;(51行目)の値(100px)を小さくすれば小さくなると思います。
「min-height」は最小の高さになります。なのでmin-heightの値を小さくすれば高さが小さくなります。
ランキングからきました。
色んな事が出来るんですね?
ありがとうございました。
> ゆうさん
こんにちは。
コメントありがとうございます。
そうですね。いろいろできますね。
私は知識がないので、上手くデザインを帰ることが出来ませんが…(^^;)
勉強になります。