素材牛VIP会员

纯CSS3制作Tabs选项卡特效

 所属分类:网页特效-选项卡/滑动门

 浏览:1783次  评论:0次  更新时间:2016-10-20
牛币素材VIP可免积分下载
纯CSS3制作Tabs选项卡特效兼容IE10
积分说明:注册即送10牛币,每日签到可获得5牛币,成为VIP会员可永久免牛币下载!   充值积分   充值会员   更多说明»
素材描述:使用纯CSS3制作的Tabs选项卡特效。该Tabs选项卡简约时尚,各个选项卡之间切换时使用了下划线跟随动画,整体效果非常不错。

详细介绍

简单介绍:

一款使用纯CSS3制作的Tabs选项卡特效。该Tabs选项卡简约时尚,各个选项卡之间切换时使用了下划线跟随动画,整体效果非常不错。

使用方法:

CSS核心样式

.tabs {
    left: 50 % ; - webkit - transform: translateX( - 50 % );
    transform: translateX( - 50 % );
    position: relative;
    background: white;
    padding: 50px;
    padding - bottom: 80px;
    width: 70 % ;
    height: 250px;
    box - shadow: 0 14px 28px rgba(0, 0, 0, 0.25),
    0 10px 10px rgba(0, 0, 0, 0.22);
    border - radius: 5px;
    min - width: 240px;
}.tabs input[name = "tab-control"] {
    display: none;
}.tabs.content section h2,
.tabs ul li label {
    font - weight: bold;
    font - size: 18px;
    color: #428BFF;
}.tabs ul {
    list - style - type: none;
    padding - left: 0;
    display: -webkit - box;
    display: -webkit - flex;
    display: -ms - flexbox;
    display: flex; - webkit - box - orient: horizontal; - webkit - box - direction: normal; - webkit - flex - direction: row; - ms - flex - direction: row;
    flex - direction: row;
    margin - bottom: 10px; - webkit - box - pack: justify; - webkit - justify - content: space - between; - ms - flex - pack: justify;
    justify - content: space - between; - webkit - box - align: end; - webkit - align - items: flex - end; - ms - flex - align: end;
    align - items: flex - end; - webkit - flex - wrap: wrap; - ms - flex - wrap: wrap;
    flex - wrap: wrap;
}.tabs ul li {
    box - sizing: border - box; - webkit - box - flex: 1; - webkit - flex: 1; - ms - flex: 1;
    flex: 1;
    width: 25 % ;
    padding: 0 10px;
    text - align: center;
}.tabs ul li label { - webkit - transition: all 0.3s ease - in-out;
    transition: all 0.3s ease - in-out;
    color: #929daf;
    padding: 5px auto;
    overflow: hidden;
    text - overflow: ellipsis;
    display: block;
    cursor: pointer; - webkit - transition: all 0.2s ease - in-out;
    transition: all 0.2s ease - in-out;
    white - space: nowrap; - webkit - touch - callout: none; - webkit - user - select: none; - moz - user - select: none; - ms - user - select: none;
    user - select: none;
}.tabs ul li label br {
    display: none;
}.tabs ul li label svg {
    fill: #929daf;
    height: 1.2em;
    vertical - align: bottom;
    margin - right: 0.2em; - webkit - transition: all 0.2s ease - in-out;
    transition: all 0.2s ease - in-out;
}.tabs ul li label: hover,
.tabs ul li label: focus,
.tabs ul li label: active {
    outline: 0;
    color: #bec5cf;
}.tabs ul li label: hover svg,
.tabs ul li label: focus svg,
.tabs ul li label: active svg {
    fill: #bec5cf;
}.tabs.slider {
    position: relative;
    width: 25 % ; - webkit - transition: all 0.33s cubic - bezier(0.38, 0.8, 0.32, 1.07);
    transition: all 0.33s cubic - bezier(0.38, 0.8, 0.32, 1.07);
}.tabs.slider.indicator {
    position: relative;
    width: 50px;
    max - width: 100 % ;
    margin: 0 auto;
    height: 4px;
    background: #428BFF;
    border - radius: 1px;
}.tabs.content {
    margin - top: 30px;
}.tabs.content section {
    display: none; - webkit - animation - name: content;
    animation - name: content; - webkit - animation - direction: normal;
    animation - direction: normal; - webkit - animation - duration: 0.3s;
    animation - duration: 0.3s; - webkit - animation - timing -
    function: ease - in-out;
    animation - timing -
    function: ease - in-out; - webkit - animation - iteration - count: 1;
    animation - iteration - count: 1;
    line - height: 1.4;
}.tabs.content section h2 {
    color: #428BFF;
    display: none;
}.tabs.content section h2: :after {
    content: "";
    position: relative;
    display: block;
    width: 30px;
    height: 3px;
    background: #428BFF;
    margin - top: 5px;
    left: 1px;
}.tabs input[name = "tab-control"] : nth - of - type(1) : checked~ul > li: nth - child(1) > label {
    cursor: default;
    color:
    #428BFF;
}.tabs input[name = "tab-control"] : nth - of - type(1) : checked~ul > li: nth - child(1) > label svg {
    fill: #428BFF;
}@media(max - width: 600px) {.tabs input[name = "tab-control"] : nth - of - type(1) : checked~ul > li: nth - child(1) > label {
        background: rgba(0, 0, 0, 0.08);
    }
}.tabs input[name = "tab-control"] : nth - of - type(1) : checked~.slider { - webkit - transform: translateX(0 % );
    transform: translateX(0 % );
}.tabs input[name = "tab-control"] : nth - of - type(1) : checked~.content > section: nth - child(1) {
    display: block;
}.tabs input[name = "tab-control"] : nth - of - type(2) : checked~ul > li: nth - child(2) > label {
    cursor: default;
    color:
    #428BFF;
}.tabs input[name = "tab-control"] : nth - of - type(2) : checked~ul > li: nth - child(2) > label svg {
    fill: #428BFF;
}@media(max - width: 600px) {.tabs input[name = "tab-control"] : nth - of - type(2) : checked~ul > li: nth - child(2) > label {
        background: rgba(0, 0, 0, 0.08);
    }
}.tabs input[name = "tab-control"] : nth - of - type(2) : checked~.slider { - webkit - transform: translateX(100 % );
    transform: translateX(100 % );
}.tabs input[name = "tab-control"] : nth - of - type(2) : checked~.content > section: nth - child(2) {
    display: block;
}.tabs input[name = "tab-control"] : nth - of - type(3) : checked~ul > li: nth - child(3) > label {
    cursor: default;
    color:
    #428BFF;
}.tabs input[name = "tab-control"] : nth - of - type(3) : checked~ul > li: nth - child(3) > label svg {
    fill: #428BFF;
}@media(max - width: 600px) {.tabs input[name = "tab-control"] : nth - of - type(3) : checked~ul > li: nth - child(3) > label {
        background: rgba(0, 0, 0, 0.08);
    }
}.tabs input[name = "tab-control"] : nth - of - type(3) : checked~.slider { - webkit - transform: translateX(200 % );
    transform: translateX(200 % );
}.tabs input[name = "tab-control"] : nth - of - type(3) : checked~.content > section: nth - child(3) {
    display: block;
}.tabs input[name = "tab-control"] : nth - of - type(4) : checked~ul > li: nth - child(4) > label {
    cursor: default;
    color:
    #428BFF;
}.tabs input[name = "tab-control"] : nth - of - type(4) : checked~ul > li: nth - child(4) > label svg {
    fill: #428BFF;
}@media(max - width: 600px) {.tabs input[name = "tab-control"] : nth - of - type(4) : checked~ul > li: nth - child(4) > label {
        background: rgba(0, 0, 0, 0.08);
    }
}.tabs input[name = "tab-control"] : nth - of - type(4) : checked~.slider { - webkit - transform: translateX(300 % );
    transform: translateX(300 % );
}.tabs input[name = "tab-control"] : nth - of - type(4) : checked~.content > section: nth - child(4) {
    display: block;
}@ - webkit - keyframes content {
    from {
        opacity: 0; - webkit - transform: translateY(5 % );
        transform: translateY(5 % );
    }
    to {
        opacity: 1; - webkit - transform: translateY(0 % );
        transform: translateY(0 % );
    }
}@keyframes content {
    from {
        opacity: 0; - webkit - transform: translateY(5 % );
        transform: translateY(5 % );
    }
    to {
        opacity: 1; - webkit - transform: translateY(0 % );
        transform: translateY(0 % );
    }
}@media(max - width: 1000px) {.tabs ul li label {
        white - space: initial;
    }.tabs ul li label br {
        display: initial;
    }.tabs ul li label svg {
        height: 1.5em;
    }
}@media(max - width: 600px) {.tabs ul li label {
        padding: 5px;
        border - radius: 5px;
    }.tabs ul li label span {
        display: none;
    }.tabs.slider {
        display: none;
    }.tabs.content {
        margin - top: 20px;
    }.tabs.content section h2 {
        display: block;
    }
}

HTML结构

整个Tabs选项卡的HTML结构分为几个部分:使用<input>元素和一个无序列表来制作导航。

<input type="radio" id="tab1" name="tab-control" checked>
<input type="radio" id="tab2" name="tab-control">
<input type="radio" id="tab3" name="tab-control">  
<input type="radio" id="tab4" name="tab-control">
<ul>
  <li title="tab 1"><label for="tab1" role="button"><span>Tab 1</span></label></li>
  <li title="tab 2"><label for="tab2" role="button"><span>Tab 2</span></label></li>
  <li title="tab 3"><label for="tab3" role="button"><span>Tab 3</span></label></li>
  <li title="tab 4"><label for="tab4" role="button"><span>Tab 4</span></label></li>
</ul>

各个选项卡的内容包含在一个<div>元素中。

<div class="content">
  <section>
    <h2>Tab 1 content</h2>
  </section>
  <section>
    <h2>Tab 2 content</h2>
  </section>
  <section>
    <h2>Tab 3 content</h2>
  </section>
  <section>
    <h2>Tab 4 content</h2>
  </section>
</div>

用于制作下划线动画的线条使用一个<div>元素来制作。

<div class="slider"><div class="indicator"></div></div>

相关素材 - 选项卡/滑动门

讨论这个素材(0)回答他人问题或分享使用心得会奖励牛币

〒_〒 居然一个评论都没有……

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取
我的牛币余额:0
所需牛币:1 开始下载

牛币获取:签到、评论、充值    » 在线充值(10牛币=1元)