Wordpress(テーマ:aside)でグリッドレイアウト(レスポンシブ)のテーマ仕様時、
タブでランキングと新着記事の切り替えを実装しようとしました。
該当URL
https://weddinggenic.jp
タブ切り替えで選択されてない要素はdisplay:noneによって消されており、
消されている時にテーマのレスポンシブ機能によって要素コンテンツの大きさが0になるのか、切り替えても要素が表示されません。
(ブラウザの大きさを変えるとこれもテーマの機能でブラウザサイズを読み取り(更新)そこから要素の高さ等を決定するみたいで正常表示されます。)
これを解決する為にタブ要素をabsoluteで重ね合わせ、切り替え時にz-indexで操作するなど考えたのですが、親要素の高さがなくなってしまったりとどうにもうまくいきません。
ご教示願えませんでしょうか。
PHP
<div class="tabs"> <input id="all" type="radio" name="tab_item" checked> <label class="tab_item" for="all">NEW</label> <input id="programming" type="radio" name="tab_item"> <label class="tab_item" for="programming">RANKING</label> <div class="tab_content" id="all_content"> <div class="tab_content_description"> <div class="isotope masonry"> タブ1の中身 </div> </div> </div> <div class="tab_content" id="programming_content"> <div class="tab_content_description"> <div class="isotope masonry"> タブ2の中身 </div> </div> </div> </div>
CSS
/*タブ切り替え全体のスタイル*/ .tabs { margin-top: 50px; padding-bottom: 40px; /* background-color: #fff; */ /* box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); */ /* width: 700px; */ margin: 0 auto; position: relative; } /*タブのスタイル*/ .tab_item { width: calc(100%/5); height: 50px; border-bottom: 3px solid #5ab4bd; background-color: #d9d9d9; line-height: 50px; font-size: 16px; text-align: center; color: #565656; display: block; float: left; text-align: center; font-weight: bold; transition: all 0.2s ease; } .tab_item:hover { opacity: 0.75; } /*ラジオボタンを全て消す*/ input[name="tab_item"] { display: none; } /*タブ切り替えの中身のスタイル*/ .tab_content { display: none; /* padding: 40px 40px 0; */ clear: both; overflow: hidden; } /*選択されているタブのコンテンツのみを表示*/ #all:checked ~ #all_content, #programming:checked ~ #programming_content, #design:checked ~ #design_content { display: block; } /*選択されているタブのスタイルを変える*/ .tabs input:checked + .tab_item { background-color: #5ab4bd; color: #fff; }
まだ回答がついていません
会員登録して回答してみよう