我想创建一个类似于堆栈溢出的配置文件页面的页面的选项卡视图,如下图所示。
我已经能够创建一个标签式界面,但是我无法删除标签下面的边框,因为边框实际上已经给了下面的div。如果我将边框设置为标签,那么我就无法将边框扩展到没有标签的区域。
这是我正在使用的html
<div id="centerDiv">
<div id="centeredMenu">
<ul class="tabs">
<li><a class="active" href="#">Questions</a></li>
<li><a href="#">Blogs</a></li>
<li><a href="#">Posts</a></li>
</ul>
</div>
</div>
<div style="clear:both;"></div>
<div class="favContentBox">
<!-- The content goes here -->
</div>
<div class="favContentBox">
<!-- The content goes here -->
</div>
<div class="favContentBox">
<!-- The content goes here -->
</div>
我有favContentBox
ul
个元素li
。并且javascript是
$(document).ready(function(){
var currentTab = 0;
function openTab(clickedTab) {
var thisTab = $(".tabs a").index(clickedTab);
$(".tabs li a").removeClass("active");
$(".tabs li a:eq("+thisTab+")").addClass("active");
$(".favContentBox").hide();
$(".favContentBox:eq("+thisTab+")").show();
currentTab = thisTab;
}
$(".tabs li a").click(function() {
openTab($(this));
return false;
});
$(".tabs li a:eq("+currentTab+")").click()
});
css
就像这样
.favContentBox
{
border:1px solid #808080;
padding-left:20px;
padding-right:20px;
min-height: 500px;
}
.tabs
{
margin:0 0 0 0;
padding:0 0 0 0;
left:50%;
text-align:center;
clear:left;
position:relative;
float:left;
}
.tabs li
{
list-style: none;
float: left;
right:50%;
display:block;
position:relative;
}
.tabs li a
{
display: block;
color:black;
font-weight: bold;
text-align: center;
text-decoration: none;
width:100px;
padding: 5px 0 5px 0;
border-left: 1px solid #808080;
border-top: 1px solid #808080;
border-right: 1px solid #808080;
margin-left:20px;
background-color:#F0F0F0;
}
答案 0 :(得分:2)
向选项卡添加白色底部边框,并使选项卡比其容器小一个像素(以考虑顶部边框)。这是用于选项卡悬停的所有CSS解决方案。
演示:http://jsfiddle.net/ThinkingStiff/sCgMg/
HTML:
<ul id="tabs"><!--
--><li class="tab">summary</li><!--
--><li class="tab selected">answers</li><!--
--><li class="tab">questions</li><!--
--><li class="tab">tags</li><!--
--></ul>
CSS:
#tabs {
border-bottom: 1px solid #666666;
font: bold 15px/15px Helvetica, Tahoma, Arial;
height: 30px;
margin: 0;
padding: 0;
padding-left: 10px;
}
.tab {
color: #777;
cursor: pointer;
display: inline-block;
height: 23px;
font-size: 13px;
line-height: 13px;
margin-left: 2px;
margin-right: 2px;
padding-top: 8px;
text-align: center;
vertical-align: top;
width: 80px;
}
.tab:hover {
border: 1px solid #666666;
border-bottom: 1px solid white;
height: 22px;
margin-top: 5px;
padding-top: 2px;
width: 78px;
}
.selected {
border: 1px solid #666666;
border-bottom: 1px solid white;
color: black;
font-size: 15px;
line-height: 15px;
padding-top: 6px;
width: 78px;
}
.selected:hover {
height: 23px;
margin-top: 0;
padding-top: 6px;
width: 78px;
}
脚本:
$( ".tab" ).click( function () {
$( ".selected" ).removeClass( "selected" );
$( this ).addClass( "selected" );
} );
输出:
答案 1 :(得分:1)
(不要只是复制粘贴!首先阅读下面的解释!)
HTML:
<ul>
<li><a href="#content1">Tab 1</a></li>
<li><a href="#content2">Tab 2</a></li>
<li><a href="#content3">Tab 3</a></li>
</ul>
<div class="content-boxes">
<div class="content1">Content 1</div>
<div class="content2">Content 2</div>
<div class="content3">Content 3</div>
</div>
CSS:
ul li {
/* I've left out all the floating and other obvious stuff,
since you didn't ask for that */
position: relative;
top: 1px;
background-color: #fff;
border: solid 1px #808080;
border-bottom: none;
z-index: 2;
}
.content-boxes>div {
position: relative;
z-index: 1;
}
此代码的本质是:
我没有测试代码,所以你必须自己解决这些问题。例如,此代码会将所有标签向下推,而不仅仅是活动标签。但我认为你得到的基本方法。
希望这有帮助。