将水平制表符转换为垂直制表符

时间:2011-04-08 19:37:48

标签: jquery css

我正在尝试修改以下example并制作垂直标签

我认为我在某种程度上实现了这一点,唯一缺少的是将标签内容与容器顶部对齐。 (选项卡内容显示在选项卡列表下方)。

我被困住,因为我不知道该怎么做。这是修改后的代码。

我提前为许多代码道歉。我是网页设计的新手,虽然这对我来说很复杂,但我相信对你们来说这很简单!

CSS

body {
    background: #f0f0f0;
    margin: 0;
    padding: 0;
    font: 10px normal Verdana, Arial, Helvetica, sans-serif;
    color: #444;
    }
.container {width: 500px; margin: 10px auto;}
ul.tabs {
    margin: 0;
    padding: 0;
    float: left;
    list-style: none;
    height: 32px;
    border-bottom: 1px solid #999;
    border-left: 1px solid #999;
    width: 20%;
    }
ul.tabs li {
    float: top;
    margin: 0;
    padding: 0;
    height: 31px;
    line-height: 31px;
    border: 1px solid #999;
    border-left: none;
    margin-bottom: 0px;
    background: #e0e0e0;
    overflow: hidden;
    position: relative;
    }
ul.tabs li a {
    text-decoration: none;
    color: #000;
    display: block;
    font-size: 1.2em;
    padding: 0 20px;
    border: 1px solid #fff;
    outline: none;
}
ul.tabs li a:hover {
    background: #ccc;
}   
html ul.tabs li.active, html ul.tabs li.active a:hover  {
    background: #fff;
    border-bottom: 1px solid #fff;
}
.tab_container {
    border: 1px solid #999;
    width: 200%;
    background: #fff;
    -moz-border-radius-bottomright: 5px;
    -khtml-border-radius-bottomright: 5px;
    -webkit-border-bottom-right-radius: 5px;
    -moz-border-radius-bottomleft: 5px;
    -khtml-border-radius-bottomleft: 5px;
    -webkit-border-bottom-left-radius: 5px;
    }
.tab_content {
    padding: 120px;
    font-size: 1.2em;
    }
.tab_content h2 {
    font-weight: normal;
    padding-bottom: 10px;
    border-bottom: 1px dashed #ddd;
    font-size: 1.8em;
}

的JavaScript

$(document).ready(function() {
    //Default Action
    $(".tab_content").hide(); //Hide all content
    $("ul.tabs li:first").addClass("active").show(); //Activate first tab
    $(".tab_content:first").show(); //Show first tab content

    //On Click Event
    $("ul.tabs li").click(function() {
    $("ul.tabs li").removeClass("active"); //Remove any "active" class
    $(this).addClass("active"); //Add "active" class to selected tab
    $(".tab_content").hide(); //Hide all tab content
    var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
    $(activeTab).fadeIn(); //Fade in the active content
    return false;
    });

});

HTML

<div class="container"> 
<ul class="tabs"> 
    <li><a href="#tab1">Gallery</a></li> 
    <li><a href="#tab2">Submit</a></li> 
    <li><a href="#tab2">The Third</a></li> 
</ul> 
<div class="tab_container"> 
    <div id="tab1" class="tab_content"> 
        <h2>Gallery</h2> 
        <p>Text 1 </p> 
    </div> 
    <div id="tab2" class="tab_content"> 
        <h2>Submit</h2> 
        <p>Text 2 </p> 
    </div> 
    <div id="tab3" class="tab_content"> 
        <h2>The last one</h2> 
        <p>Text 3 </p> 
    </div> 
</div> 
</div>

jsFiddle Demo

1 个答案:

答案 0 :(得分:4)

更改此CSS规则:

.tab_content {
    padding: 120px;
    font-size: 1.2em;
}

到此:

.tab_content {
    padding-left: 120px;
    min-height: 240px;
    font-size: 1.2em;
}

http://jsfiddle.net/mattball/4BEm2/1/


修改 OP询问“如果您点击第三个标签,您会发现底部边框消失。有没有办法解决这个问题?(和理想情况下,使活动标签的右边框消失)“

更改此CSS规则:

html ul.tabs li.active,
html ul.tabs li.active a:hover {
    background: #FFF;
    border-bottom: 1px solid #FFF;
}

到此:

ul.tabs li.active {
    background: #FFF;
    border-right: 1px solid #FFF;
}

http://jsfiddle.net/mattball/4BEm2/2/