2015-10-17 113 views
0

我有一个水平HTML选项卡,其中我希望隐藏所选选项卡的底部边框。隐藏HTML中选定选项卡的底部边框

下面是当前的代码,我有 - https://jsfiddle.net/vgx2k7p5/

这个问题已经被问herehere

但这两种解决方案都不能正常工作,因为我使用一个div结构,没有太大的JavaScript。

jQuery('.tab-links a').on('click', function(e) { 
 

 
    var currentAttrValue = jQuery(this).attr('href'); 
 

 
    jQuery(currentAttrValue).show().siblings().hide(); //changed here 
 
    jQuery(this).parent('li').addClass('active').siblings().removeClass('active'); 
 
    e.preventDefault(); 
 
});
.tabs { 
 
    width: 90%; 
 
    margin: auto; 
 
} 
 
/*----- Tab Links -----*/ 
 

 
/* Clearfix */ 
 

 
.tab-links:after { 
 
    display: block; 
 
    clear: both; 
 
    content: ''; 
 
} 
 
.tab-links { 
 
    margin: 0px; 
 
} 
 
.tab-links li { 
 
    margin: 0px 3px; 
 
    float: left; 
 
    list-style: none; 
 
} 
 
.tab-links a { 
 
    padding: 9px 15px; 
 
    display: inline-block; 
 
    border-radius: 3px 3px 0px 0px; 
 
    text-decoration: none; 
 
    font-size: 16px; 
 
    font-weight: 600; 
 
    color: #999; 
 
    transition: all linear 0.2s; 
 
    border: 1px solid #fff; 
 
} 
 
.tab-links a:hover { 
 
    text-decoration: none; 
 
    /*background: #f1f1f1;*/ 
 
    /*border-bottom: 4px solid #999; */ 
 
} 
 
li.active a, 
 
li.active a:hover { 
 
    /* border-bottom: 4px solid #444; */ 
 
    /*background: #ccc;*/ 
 
    border: 1px solid #ccc; 
 
    border-bottom: 1px solid #fff; 
 
    color: #444; 
 
} 
 
/*----- Content of Tabs -----*/ 
 

 
.tab-content { 
 
    padding: 15px; 
 
    border-radius: 3px; 
 
    border: 1px solid #ccc; 
 
    background: #fff; 
 
    min-height: 300px; 
 
    z-index: -99; 
 
} 
 
.tab { 
 
    display: none; 
 
    min-height: 300px; 
 
} 
 
.tab.active { 
 
    display: block; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="tabs margintop20"> 
 
    <ul class="tab-links"> 
 
    <li class="active"><a href="#tab1">PROFILE</a> 
 
    </li> 
 
    <li><a href="#tab2">REVIEWS</a> 
 
    </li> 
 
    <li><a href="#tab3">REWARDS</a> 
 
    </li> 
 

 
    </ul> 
 

 
    <div class="tab-content"> 
 
    <div id="tab1" class="tab active clearfix"> 
 

 

 
    </div> 
 

 
    <div id="tab2" class="tab"> 
 

 
    </div> 
 

 
    <div id="tab3" class="tab"> 
 
     <h3>Videos and Screenshots</h3> 
 

 
    </div> 
 

 

 
    </div> 
 
</div> 
 

 
</div>

我到底做错了什么?设置Z-index和增加border-bottom宽度都不起作用。

回答

1

我已经与更新你的CSS:

/* ADDED */ 
.tab-links .active{ 
    margin-top : 1px; 
} 
.active > a { 
    margin-bottom: -1px; 
} 

而现在它似乎是工作!


jQuery('.tab-links a').on('click', function(e) { 
 

 
    var currentAttrValue = jQuery(this).attr('href'); 
 

 
    jQuery(currentAttrValue).show().siblings().hide(); //changed here 
 
    jQuery(this).parent('li').addClass('active').siblings().removeClass('active'); 
 
    e.preventDefault(); 
 
});
.tabs { 
 
    width: 90%; 
 
    margin: auto; 
 
} 
 
/*----- Tab Links -----*/ 
 

 
/* Clearfix */ 
 

 
.tab-links:after { 
 
    display: block; 
 
    clear: both; 
 
    content: ''; 
 
} 
 
.tab-links { 
 
    margin: 0px; 
 
} 
 
.tab-links li { 
 
    margin: 0px 3px; 
 
    float: left; 
 
    list-style: none; 
 
} 
 
.tab-links a { 
 
    padding: 9px 15px; 
 
    display: inline-block; 
 
    border-radius: 3px 3px 0px 0px; 
 
    text-decoration: none; 
 
    font-size: 16px; 
 
    font-weight: 600; 
 
    color: #999; 
 
    transition: all linear 0.2s; 
 
    border: 1px solid #fff; 
 
} 
 
.tab-links a:hover { 
 
    text-decoration: none; 
 
    /*background: #f1f1f1;*/ 
 
    /*border-bottom: 4px solid #999; */ 
 
} 
 
li.active a, 
 
li.active a:hover { 
 
    /* border-bottom: 4px solid #444; */ 
 
    /*background: #ccc;*/ 
 
    border: 1px solid #ccc; 
 
    border-bottom: 1px solid #fff; 
 
    color: #444; 
 
} 
 

 

 

 
/*----- Content of Tabs -----*/ 
 

 
.tab-content { 
 
    padding: 15px; 
 
    border-radius: 3px; 
 
    border: 1px solid #ccc; 
 
    background: #fff; 
 
    min-height: 300px; 
 
    z-index: -99; 
 
} 
 
.tab { 
 
    display: none; 
 
    min-height: 300px; 
 
} 
 
.tab.active { 
 
    display: block; 
 
} 
 

 

 
/* ADDED */ 
 
.tab-links .active{ 
 
    margin-top : 1px; 
 
    } 
 
.active > a { 
 
    margin-bottom: -1px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="tabs margintop20"> 
 
    <ul class="tab-links"> 
 
    <li class="active"><a href="#tab1">PROFILE</a> 
 
    </li> 
 
    <li><a href="#tab2">REVIEWS</a> 
 
    </li> 
 
    <li><a href="#tab3">REWARDS</a> 
 
    </li> 
 

 
    </ul> 
 

 
    <div class="tab-content"> 
 
    <div id="tab1" class="tab active clearfix"> 
 

 

 
    </div> 
 

 
    <div id="tab2" class="tab"> 
 

 
    </div> 
 

 
    <div id="tab3" class="tab"> 
 
     <h3>Videos and Screenshots</h3> 
 

 
    </div> 
 

 

 
    </div> 
 
</div> 
 

 
</div>