Stacked Tabs in Bootstrap 3

前端 未结 4 1875
轮回少年
轮回少年 2020-11-27 09:20

I am trying to implement left-aligned stacked tabs using the Tab jquery plugin in Bootstrap 3 where tabs are rendered vertically to the left of tab content, rather than on t

4条回答
  •  南方客
    南方客 (楼主)
    2020-11-27 09:43

    Left, Right and Below tabs were removed from Bootstrap 3, but you can add custom CSS to achieve this..

    .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 #ffffd;
    }
    
    .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: #ffffd;
      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 #ffffd #ffffd #ffffd;
    }
    
    .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 #ffffd;
    }
    
    .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 #ffffdffffd #eeeeee #eeeeee;
    }
    
    .tabs-left > .nav-tabs .active > a,
    .tabs-left > .nav-tabs .active > a:hover,
    .tabs-left > .nav-tabs .active > a:focus {
      border-color: #ffffd transparent #ffffd #ffffd;
      *border-right-color: #ffffff;
    }
    
    .tabs-right > .nav-tabs {
      float: right;
      margin-left: 19px;
      border-left: 1px solid #ffffd;
    }
    
    .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 #ffffdffffd;
    }
    
    .tabs-right > .nav-tabs .active > a,
    .tabs-right > .nav-tabs .active > a:hover,
    .tabs-right > .nav-tabs .active > a:focus {
      border-color: #ffffd #ffffd #ffffd transparent;
      *border-left-color: #ffffff;
    }
    

    Working example: http://bootply.com/74926

    UPDATE

    If you don't need the exact look of a tab (bordered appropriately on the left or right as each tab is activated), you can simple use nav-stacked, along with Bootstrap col-* to float the tabs to the left or right...

    nav-stacked demo: http://codeply.com/go/rv3Cvr0lZ4

    
    

提交回复
热议问题