我试图在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选项卡插件?
解决方法
左,右和以下选项卡从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-stack demo: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>