引导程序3中的堆栈选项卡

我试图使用 Bootstrap 3中的 Tab jquery 插件实现左对齐的堆叠选项卡,其中选项卡垂直呈现在选项卡内容的左侧,而不是顶部。当我尝试以下方法时;

   <ul class="nav nav-tabs nav-stacked">
<li><a href="#tab1" data-toggle="tab">Tab 1</a></li>
<li><a href="#tab2" data-toggle="tab">Tab 2</a></li>
<li><a href="#tab3" data-toggle="tab">Tab 3</a></li>
</ul>




<div class="tab-content">
<div class="tab-pane fade" id="tab1">
Tab 1 content
</div>
<div class="tab-pane fade" id="tab2">
Tab 2 content
</div>
<div class="tab-pane fade" id="tab3">
Tab 3 content
</div>
</div>

选项卡叠加在一起,但是不会正确地呈现为向左转,而只是水平的选项卡叠加在一起。选项卡内容正确地显示/隐藏在内容 div 中。

在 Bootstrap 2.x 中使用 向左Tab-right类处理这个问题,但是在 Bootstrap 3中不推荐使用这个问题,而且似乎没有用任何东西替代它。有人知道在 Bootstrap 3 Tab 插件中是否可以实现正确的左右制表符渲染吗?

234285 次浏览

从 Bootstrap 3中删除了“左”、“右”和“下”选项卡,但是您可以添加自定义 CSS 来实现这一点。

.tabs-below > .nav-tabs,
.tabs-right > .nav-tabs,
.tabs-left > .nav-tabs {
border-bottom: 0;
}


.tab-content > .tab-pane,
.pill-content > .pill-pane {
display: none;
}


.tab-content > .active,
.pill-content > .active {
display: block;
}


.tabs-below > .nav-tabs {
border-top: 1px solid #ddd;
}


.tabs-below > .nav-tabs > li {
margin-top: -1px;
margin-bottom: 0;
}


.tabs-below > .nav-tabs > li > a {
-webkit-border-radius: 0 0 4px 4px;
-moz-border-radius: 0 0 4px 4px;
border-radius: 0 0 4px 4px;
}


.tabs-below > .nav-tabs > li > a:hover,
.tabs-below > .nav-tabs > li > a:focus {
border-top-color: #ddd;
border-bottom-color: transparent;
}


.tabs-below > .nav-tabs > .active > a,
.tabs-below > .nav-tabs > .active > a:hover,
.tabs-below > .nav-tabs > .active > a:focus {
border-color: transparent #ddd #ddd #ddd;
}


.tabs-left > .nav-tabs > li,
.tabs-right > .nav-tabs > li {
float: none;
}


.tabs-left > .nav-tabs > li > a,
.tabs-right > .nav-tabs > li > a {
min-width: 74px;
margin-right: 0;
margin-bottom: 3px;
}


.tabs-left > .nav-tabs {
float: left;
margin-right: 19px;
border-right: 1px solid #ddd;
}


.tabs-left > .nav-tabs > li > a {
margin-right: -1px;
-webkit-border-radius: 4px 0 0 4px;
-moz-border-radius: 4px 0 0 4px;
border-radius: 4px 0 0 4px;
}


.tabs-left > .nav-tabs > li > a:hover,
.tabs-left > .nav-tabs > li > a:focus {
border-color: #eeeeee #dddddd #eeeeee #eeeeee;
}


.tabs-left > .nav-tabs .active > a,
.tabs-left > .nav-tabs .active > a:hover,
.tabs-left > .nav-tabs .active > a:focus {
border-color: #ddd transparent #ddd #ddd;
*border-right-color: #ffffff;
}


.tabs-right > .nav-tabs {
float: right;
margin-left: 19px;
border-left: 1px solid #ddd;
}


.tabs-right > .nav-tabs > li > a {
margin-left: -1px;
-webkit-border-radius: 0 4px 4px 0;
-moz-border-radius: 0 4px 4px 0;
border-radius: 0 4px 4px 0;
}


.tabs-right > .nav-tabs > li > a:hover,
.tabs-right > .nav-tabs > li > a:focus {
border-color: #eeeeee #eeeeee #eeeeee #dddddd;
}


.tabs-right > .nav-tabs .active > a,
.tabs-right > .nav-tabs .active > a:hover,
.tabs-right > .nav-tabs .active > a:focus {
border-color: #ddd #ddd #ddd transparent;
*border-left-color: #ffffff;
}

工作示例: http://bootply.com/74926

更新

如果你不需要选项卡的确切外观(在每个选项卡被激活时,适当地在左边或右边加上边框) ,你可以简单地使用 nav-stacked和 Bootstrap col-*将选项卡浮动到左边或右边..。

nav-stacked演示: http://codeply.com/go/rv3Cvr0lZ4

<ul class="nav nav-pills nav-stacked col-md-3">
<li><a href="#a" data-toggle="tab">1</a></li>
<li><a href="#b" data-toggle="tab">2</a></li>
<li><a href="#c" data-toggle="tab">3</a></li>
</ul>

引导小组似乎已经把它移除了。看这里: https://github.com/twbs/bootstrap/issues/8922。@ Skelly 的回答涉及到定制的 css,我不想这么做,所以我使用了网格系统和导航药丸。它工作良好,看起来很棒。代码看起来是这样的:

<div class="row">


<!-- Navigation Buttons -->
<div class="col-md-3">
<ul class="nav nav-pills nav-stacked" id="myTabs">
<li class="active"><a href="#home" data-toggle="pill">Home</a></li>
<li><a href="#profile" data-toggle="pill">Profile</a></li>
<li><a href="#messages" data-toggle="pill">Messages</a></li>
</ul>
</div>


<!-- Content -->
<div class="col-md-9">
<div class="tab-content">
<div class="tab-pane active" id="home">Home</div>
<div class="tab-pane" id="profile">Profile</div>
<div class="tab-pane" id="messages">Messages</div>
</div>
</div>


</div>

你可以在这里看到: http://bootply.com/81948

@ SeanK 提供了不必通过 Javascript 启用导航药丸而是使用 data-toggle="pill"的选项。看看这里: http://bootply.com/96067。谢谢你,肖恩。

为了获得 Bootstrap 3的左右标签(现在还有侧边标签)支持,可以使用 Bootstrap-竖直标签组件。

Https://github.com/dbtek/bootstrap-vertical-tabs

您不应该需要将它重新添加到。这是有人故意拿走的。文档稍有变化,需要的 CSS 类(“导航堆叠”)只在丸组件下面提到,但应该也适用于制表符。

本教程展示了如何正确使用 Bootstrap 3设置来做垂直选项卡:
Tutsme-webdesign.info/bootstrap-3-toggable-tabs-and-pills