タブ切り替えのためのhtmlサンプルコード
プロジェクト内のタブスイッチも一般的な技術とみなされ、タブスイッチの一般的な実装は、jsやjqの実装を使用して、今日は2つのCSSのみのタブスイッチ方式を導入しています。
方法1
原理:対応するdivの表示は、labelタグの関連属性と入力のradioタイプによって実現される
1. コンテナとしてクラス名wrapのdivを作成します。
2. タブトグルとして機能する4つのラベルタグを作成します。
3. 各ラベルには、spanラベル(ナビゲーションコンテンツ)、radioタイプの入力ラベル(チェックとアンチェックを有効にする)、そしてコンテンツボックスを表示するためにクリックされるナビゲーションアイテムとしてdivを作成します。
ここで、inputタグの名前を同じにする必要があることに注意してください、私の側はtabという名前です
最終的なHTMLは次のようになります。
<div class="wrap">
<label>
<span>home</span>
<input type="radio" name="tab" checked>
<div>home-page</div>
</label>
<label>
<span>list</span>
<input type="radio" name="tab">
<div>list-page</div>
</label>
<label>
<span>news</span>
<input type="radio" name="tab">
<div>news-page</div>
</label>
<label>
<span>mine</span>
<input type="radio" name="tab">
<div>mine-page</div>
</label>
</div>
重要なcssは、inputのdotを非現実的にするためにwidthを0にし、ナビゲーションアイテムのクリックにラベルを関連付けることでinputのcheckedを実現し、input:checked+div{display:block}で該当divの表示を実現することである。
<style type="text/css">
*{margin: 0;padding: 0;}
.wrap{
margin: 20px auto;
width: 403px;
height: 600px;
border:1px solid brown;
position: relative;
}
label{
width: 100px;
height: 30px;
float: left;
text-align: center;
line-height:30px;
border-right: 1px solid brown;
border-bottom: 1px solid brown;
}
label:nth-of-type(4){
border-right: none;
}
label span{
cursor: pointer;
}
label div{
width: 403px;
height: 568px;
position: absolute;
left: 0;
top: 31px;
background: #eeeeee;
display: none;
}
label input{
width: 0;
}
input:checked+div{
display: block;
}
</style>
方法2
原理:aタグのアンカーで切り替えを行う。つまり、a hrefのパスが切り替え対象のdivのidとなる。
1. wrapというクラス名のdivをコンテナとして作成します。
2. navというクラス名のdivを作成し、中にaタグを4つ作成、aタグのhrefが切り替え先のdivのidになります。
3. navの兄弟であるshというクラスでコンテナを作成し、切り替えたdivを格納します。
4. 上記のaタグに対応するidを持つdisplay content divを作成します。
最終的には次のようなコードになります。
<div class="wrap">
<div class="nav">
<a href="#home">home</a>
<a href="#list">list</a>
<a href="#news">news</a>
<a href="#mine">mine</a>
</div>
<div class="sh">
<div id="home">home-page</div>
<div id="list">list-page</div>
<div id="news">news-page</div>
<div id="mine">mine-page</div>
</div>
</div>
cssのスタイル設定、つまりクラス名shの下のdivはdisplay:noneとし、div:target{display:block}で選択項目を表示するようにする。
<style type="text/css">
*{margin: 0;padding: 0}
.wrap{
width: 400px;
height: 600px;
border: 1px solid brown;
margin: 20px auto;
position: relative;
}
.nav{
width: 100%;
height: 30px;
}
.nav a{
width: 99px;
height: 30px;
text-align: center;
line-height: 30px;
border-right: 1px solid brown;
border-bottom: 1px solid brown;
float: left;
text-decoration: none;
color:black;
}
.sh{
width: 400px;
height: 569px;
position: absolute;
left: 0;
top:31px;
background: #eeeeee;
}
.sh div{
display: none;
text-align: center;
}
.sh div:target{
display: block;
}
</style>
今回紹介したのはhtmlタブ切り替えのサンプルコードで、もっと関連するhtmlタブ切り替えの内容はスクリプトハウスの過去記事を検索するか、以下の関連記事を引き続き閲覧してください、今後ともスクリプトハウスを応援よろしくお願いします
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Html階層型ボックスシャドウ効果サンプルコード
-
div+css3を使用したグラデーション背景のボタンのコード例
-
htmlのテキストがオーバーフローして省略文字が表示される場合の2つの一般的な解決方法
-
HTMLにおけるフォームのセンタリング効果
-
テーブル表でスラッシュヘッダー効果を実現する5つの方法
-
HTMLのcellpaddingとcellspacing属性のグラフィックディテール
-
divタグの要素margin-topが機能しない場合の解決方法
-
IE8、IE9の互換表示モードをHTMLでそれぞれ無効にする裏技
-
Web制作のためのHTMLチュートリアル:iframeタグの使用は慎重に
-
htmlフォームのいくつかの送信方法のまとめ