画面サイズによってタブがアコーディオンに変わるプラグイン
今までは、プラグイン「Shortcodes Ultimate」のタブを利用していたが、タブの数が多いとスマホ表示時にタブヘッダーが上部に集まってしまい、切り替わるコンテンツが見えないと言う事態に。
そこで、タブを画面サイズによってアコーディオンにしてくれるプラグインを探すが、ネットではjQueryのプラグインの記事が多い。
wordpress.ORG日本語サイトでプラグインを探してみる。
使えそうなのがいくつかあった。
Responsive Tabs
Tab setsメニューからタブグループを作りショートコードで実装。画面幅が狭くなったときは、タブが上部でメニューになりプルダウンする。
タブヘッダと罫線の色を指定可能。
コンテンツ部分はボックスで囲まない。
Tabby Responsive Tabs
設定無しショートコードで実装。画面幅が狭くなったときはアコーディオン。有料でカスタマイズ用のプラグインがある。
767pxで表示が切り替わる。
[tabby title=タイトル1]
コンテンツ 1
[tabby title=タイトル2]
コンテンツ 2
[tabbyending]←最後に挿入
タイトル1
コンテンツ 1
タイトル2
コンテンツ 2
Tabs
HTML&CSS3のタブ
Tabsメニューからタブスタイル、コンテンツを設定してショートコードで実装。
タブスタイルでタブの設定、タブコンテンツで各タブのタイトル、コンテンツ設定。
※使用テーマ「border」では機能しなかった。
いくつか試して、「Tabby Responsive Tabs」を使用する事に。
Tabby Responsive Tabsのcssを変更。
文字が大きすぎたのを修正。子テーマのcssに記述しても反映されない。プラグインのcssが優先されている。
調べてみると、cssで優先させる要素に「!important」を追加すると優先されるらしい。
参考サイト
プラグインのcssがテーマのcssより優先される場合などに便利。
「Tabby Responsive Tabs」のスタイルを変更する。
/* ---------------------------------------------
Tabby レスポンシブル タブの設定
------------------------------------------------ */
.responsive-tabs .responsive-tabs__list__item {
background: transparent;
border: 1px solid transparent;
border-bottom: none;
-webkit-border-top-left-radius: 5px !important;
-webkit-border-top-right-radius: 5px !important;
-moz-border-radius-topleft: 5px !important;
-moz-border-radius-topright: 5px !important;
border-top-left-radius: 5px !important;
border-top-right-radius: 5px !important;
color: #fff;
font-size: 14px !important;/* 変更 */
line-height: 19px !important;/* 変更 */
text-transform: inherit;
margin: 1px 1px 0 0 !important;
padding: 5px 7px 5px !important;/* 変更 */
}
.responsive-tabs .responsive-tabs__panel {
-webkit-border-radius: 10px !important;
-moz-border-radius: 10px !important;
border-radius: 10px !important;
-webkit-border-top-left-radius: 10px !important;
-moz-border-radius-topleft: 10px !important;
border-top-left-radius: 10px !important;
}
768pxで表示がアコーディオンになるように本体のcssも変更した。