我正在尝试使用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-left 和 tab-right 类处理的,但这在Bootstrap 3中已弃用,似乎并不是真的被任何东西取代。有谁知道Bootstrap 3 Tab插件中是否可以进行正确的左右选项卡渲染?
答案 0 :(得分:231)
左侧,右侧和下方标签已从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;
}
<强> 更新 强>
如果您不需要选项卡的精确外观(在激活每个选项卡时左右相邻的边框),您可以简单地使用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>
答案 1 :(得分:46)
Bootstrap团队似乎已将其删除。见这里: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启用nav-pills而是使用data-toggle="pill"
的选项。请在此处查看:http://bootply.com/96067。谢谢肖恩。
答案 2 :(得分:29)
要获得Bootstrap 3的左右标签(现在也是横向标签),可以使用bootstrap-vertical-tabs组件。
答案 3 :(得分:9)
你不需要重新加入。这是故意删除的。文档已经有所改变,必要的CSS类(&#34; nav-stacked&#34;)仅在丸组件下提及,但也适用于标签。
本教程介绍如何正确使用Bootstrap 3设置来执行垂直标签:
tutsme-webdesign.info/bootstrap-3-toggable-tabs-and-pills
答案 4 :(得分:-7)
在这里,您可以使用带有工作示例的选项卡式导航的所有变体。 http://www.tutorialspark.com/twitterBootstrap/TwitterBootstrap_Navigations.php