2013/07/07

[UI] UI Components : Tab 切替UIデザインいろいろ

HTML


CSS(共通)

/*基本設定*/
.navi > div {
 display:none;
 padding: 1em 0 0;
}
.navi .show {
 display:block;
}
.tab > li {
 box-sizing: border-box;
 -moz-box-sizing: border-box;
 -webkit-box-sizing: border-box;
 transition: all 0.3s ease 0s;
 -webkit-transition: all 0.3s ease 0s;
 cursor:pointer;
 font-size: 14px;
 text-transform: uppercase;
}
.tab > li.active {
 cursor: default;
}

JS

切替のためのjsは『jQuery(+CSS3)で作るタブ切替えパネル(2段タブ対応)』こちらのサイトのものをカスタマイズして利用しています。同じページ内に複数設置が可能なことと、入れ子にも対応しているところが大変便利です。

$(function(){
$(".tab li").click(function(){
 var index = $(this).parent(".tab").children("li").index(this);
 $(this).siblings("li").removeClass("active");
 $(this).addClass("active");
 $(this).parent(".tab").nextAll("div").hide(); 
 $(this).parent(".tab").nextAll("div").eq(index).show(); 
});
})

Demo:ベーシックなタブデザイン

CSS

.tab {
 padding-left: 1em;
 border-bottom: #ccc 1px solid;
}
.tab li {
 position: relative;
 top: 1px;
 display:inline-block;
 padding: .6em 1em;
 background: #f5f5f5;
 border: #ccc 1px solid;
 border-left: none;
 border-radius:3px 3px 0 0;
 color: #999;
}
.tab li:first-child {
 border-left: #ccc 1px solid;
}
.tab .active, .tab .active:hover {
 background: #fff;
 border-bottom: #fff 1px solid;
 color: #333;
}
.tab > :hover {
 background: #eee;
 color: #666;
}

Demo:ベーシックなタブデザイン隙間あり

CSS

.tab {
 padding-left: 1em;
 border-bottom: #ccc 1px solid;
}
.tab li {
 position: relative;
 top: 1px;
 display:inline-block;
 padding: .6em 1em;
 background: #f5f5f5;
 border: #ccc 1px solid;
 border-radius:3px 3px 0 0;
 color: #999;
}
.tab li + li {
 margin-left: 5px;
}
.tab .active, .tab .active:hover {
 background: #fff;
 border-bottom: #fff 1px solid;
 color: #333;
}
.tab > :hover {
 background: #eee;
 color: #666;
}

Demo:youtubeライクなやつ

CSS

.tab {
 border-bottom: #eee 1px solid;
}
.tab li {
 display:inline-block;
 padding: .3em 0;
 border-bottom: transparent 3px solid;
 color: #aaa;
}
.tab li + li {
 margin-left: 1.5em;
}
.tab .active, .tab .active:hover {
 border-bottom: #C7243A 3px solid;
 color: #333;
}
.tab > :hover {
 border-bottom: #F28A8F 3px solid;
 color: #666;
}

Demo:下線が重なる感じ

CSS

.tab {
 border-bottom: #eee 3px solid;
}
.tab li {
 position: relative;
 display:inline-block;
 padding: .6em 0;
 color: #aaa;
}
.tab li + li {
 margin-left: 1.5em;
}
.tab li.active:after, .tab li:after {
 content: "";
 position: absolute;
 left: 0;
 right: 0;
 bottom: -3px;
 height: 3px;
 transition: all 0.3s ease 0s;
 -webkit-transition: all 0.3s ease 0s;
}
.tab li.active:after, .tab li.active:hover:after {
 background: #C7243A;
}
.tab li:hover:after {
 background: #F28A8F;
}
.tab .active, .tab .active:hover {
 color: #333;
}
.tab > :hover {
 color: #666;
}

Demo:三角が下からにょきっと

CSS

.tab {
 background: #C7243A;
}
.tab li {
 display:inline-block;
 position: relative;
 margin-left: 1.5em;
 padding: .7em 0;
 color: rgba(255, 255, 255, .4);
}
.tab .active, .tab .active:hover {
 color: rgba(255, 255, 255, 1);
}
.tab > :hover {
 color: rgba(255, 255, 255, .8);
}
.tab > :after {
 content: "";
 position: absolute;
 height: 0;
 width: 0;
 bottom: -8px;
 left: 50%;
 border:8px solid transparent;
 border-bottom:8px solid #fff;
 margin-left: -8px;
 transition: all 0.2s ease 0s;
 -webkit-transition: all 0.2s ease 0s;
}
.tab > :hover:after, .tab .active:after{
 bottom: 0;
}

Demo:三角が下へにょきっと

CSS

.tab {
 background: #C7243A;
}
.tab li {
 display:inline-block;
 position: relative;
 margin-left: 1.5em;
 padding: .7em 0;
 color: rgba(255, 255, 255, .4);
}
.tab .active, .tab .active:hover {
 color: rgba(255, 255, 255, 1);
}
.tab > :hover {
 color: rgba(255, 255, 255, .8);
}
.tab > :after {
 content: "";
 position: absolute;
 height: 0;
 width: 0;
 top: 70%;
 left: 50%;
 border:8px solid transparent;
 border-top:8px solid #C7243A;
 margin-left: -8px;
 transition: all 0.2s ease 0s;
 -webkit-transition: all 0.2s ease 0s;
}
.tab > :hover:after, .tab .active:after{
 top: 100%;
}

Demo:四角で選択

CSS

.tab li {
 display:inline-block;
 padding: .8em 1em;
 border-radius: 5px;
 color: #C7243A;
}
.tab li + li {
 margin-left: .5em;
}
.tab .active, .tab .active:hover {
 background: #C7243A;
 color: #fff;
}
.tab > :hover {
 background: #eee;
}

Demo:縦型ナビ

CSS

.navi {
 overflow:hidden;
}
.tab {
 float: left;
 clear: left;
 width: 6em;
 padding: 1em 0 1em 1em;
 background: #C7243A;
}
> div {
 padding-left: 9em;
}
.tab li {
 display: block;
 padding: .8em 1em;
 border-radius:3px 0 0 3px;
 color: #fff;
}
.tab .active, .tab .active:hover {
 background: #fff;
 color: #C7243A;
}
.tab > :hover {
 background: rgba(255, 255, 255, .2);
}

CSS対応状況

0 件のコメント :

コメントを投稿