首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Bootstrap 3中的堆叠标签

Bootstrap 3中的堆叠标签
EN

Stack Overflow用户
提问于 2013-08-26 03:02:36
回答 4查看 232.3K关注 0票数 156

我正在尝试使用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中正确显示/隐藏。

这是在Bootstrap2.x中使用标签页左侧的标签页右侧的类来处理的,但是在Bootstrap 3中被弃用了,似乎并没有被任何东西所取代。有没有人知道Bootstrap 3 tab插件中是否可以正确地呈现左右标签?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-08-26 19:40:12

从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>
票数 236
EN

Stack Overflow用户

发布于 2013-09-19 21:27:51

Bootstrap团队似乎已经移除了它。请看这里:https://github.com/twbs/bootstrap/issues/8922。@Skelly的回答涉及到自定义css,我不想这样做,所以我使用了网格系统和nav-pills。它工作得很好,看起来也很棒。代码如下所示:

<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。谢谢你肖恩。

票数 48
EN

Stack Overflow用户

发布于 2013-12-03 19:06:02

要获得对Bootstrap 3的左侧和右侧选项卡(现在也支持横向)的支持,可以使用引导-垂直-选项卡组件。

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

票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18432577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档