さりげないアニメーションがいい感じ、HTML/CSSでシンプルに実装するタブコンテンツ
Post on:2013年10月8日
スクリプト無し、HTMLとCSSで実装するシンプルなタブコンテンツを紹介します。
コマ数を落としているから、アニメがうまく見えてないかも
タブコンテンツはシンプルながら、さりげないアニメーションが仕込まれておりいい感じです。上記はgifアニメーションで、実際のデモは下記ページで確認できます。
タブ切替のトリックは、ラジオボタンです。タブとして表示されているラベルをクリックするとラジオボタンがチェック状態になり、コンテンツが表示されます。
HTML
タブとコンテンツは1セットでリスト要素で実装します。
<ul class="tabs"> <li> <input type="radio" name="tabs" id="tab1" checked /> <label for="tab1">タブ 1</label> <div id="tab-content1" class="tab-content"> <p>コンテンツ 1</p> </div> </li> <li> <input type="radio" name="tabs" id="tab2" /> <label for="tab2">タブ 2</label> <div id="tab-content2" class="tab-content"> <p>コンテンツ 2</p> </div> </li> </ul>
CSS
CSSはそのままコピペでいけますが、タブの配置を調整したい場合は「.tabs」「.tabs li」あたりを変更してください。
* { margin: 0; padding: 0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } body { padding: 20px; text-align: left; font-family: Lato; color: #fff; background: #9b59b6; } .tabs { width: 650px; float: none; list-style: none; position: relative; margin: 80px 0 0 10px; text-align: left; } .tabs li { float: left; display: block; } .tabs input[type="radio"] { position: absolute; top: -9999px; left: -9999px; } .tabs label { display: block; padding: 14px 21px; border-radius: 2px 2px 0 0; font-size: 20px; font-weight: normal; text-transform: uppercase; background: #8e44ad; cursor: pointer; position: relative; top: 4px; -webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; -o-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; } .tabs label:hover { background: #703688; } .tabs .tab-content { z-index: 2; display: none; overflow: hidden; width: 100%; font-size: 17px; line-height: 25px; padding: 25px; position: absolute; top: 53px; left: 0; background: #612e76; } .tabs [id^="tab"]:checked + label { top: 0; padding-top: 17px; background: #612e76; } .tabs [id^="tab"]:checked ~ [id^="tab-content"] { display: block; }
実装すると、こんな感じです。
タブを左寄せにしてみました。
実装したデモ
sponsors