【问题标题】:How to get bootstrap tabs to show up on the bottom of the left or right side如何让引导选项卡显示在左侧或右侧的底部
【发布时间】:2016-10-29 22:43:58
【问题描述】:

我一直在尝试让引导选项卡显示在左下角和/或右下角。我在网上找不到任何描述如何做到这一点的信息。我找到的最接近的选项卡显示左侧和右侧的选项卡,但在侧面的顶部,而不是底部。

这是我到目前为止的代码:

<div id="tabHeaderId01" class="tabbable tabs-left">
  <ul id="tabListId" class="nav nav-tabs navbar-right">
    <li id="tabid_One" class="active"><a href="#one" data-toggle="tab">One</a></li>
    <li id="tabid_Two"><a href="#two" data-toggle="tab">Two</a></li>
    <li id="tabid_Twee"><a href="#twee" data-toggle="tab">Twee</a></li>
  </ul>
  <div id="tabContentsId01" class="tab-content">
    <div class="tab-pane active" id="one">
    Secondo sed ac orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan.
   Aliquam in felis sit amet augue.
    </div>
    <div class="tab-pane" id="two">
    Thirdamuno, ipsum dolor sit amet, consectetur adipiscing elit. Duis pharetra varius quam sit amet vulputate.
   Quisque mauris augue, molestie tincidunt condimentum vitae.
    </div>
    <div class="tab-pane" id="twee">
    Lorem ipsum dolor sit amet, charetra varius quam sit amet vulputate.
   Quisque mauris augue, molestie tincidunt condimentum vitae, gravida a libero.
    </div>
  </div>
</div>

这是css:

  .tabs-right-align
  {
    text-align: right;
    font-size: 0;
    /* prevent floated child bug */
  }
  .tabs-right-align>li 
  {
    display: inline-block;
    clear: left;
    float: none;
    text-align: right;
    font-size: 12px;
  }

/* custom inclusion of right, left and below tabs */

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

.nav-tabs
{
  border-bottom: 0px;
}
.tab-content
{
  border-right: 1px solid #ddd;
  border-left: 1px solid #ddd;
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
}

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

.tab-content > .active,
.pill-content > .active {
  display: block;
  min-height: 100px;
}

.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: 0px 0 4px 4px;
     -moz-border-radius: 0px 0 4px 4px;
          border-radius: 0px 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;
}

我有一个关于现在发生的事情的 bootply 演示:

http://www.bootply.com/p5Z5uc6Gwb

我有两个问题:

  1. 我无法让选项卡显示在左侧底部。当我尝试做一个'navbar-right'时,这显然是行不通的。但是没有'navbar-bottom',那么如何让标签显示在左侧底部?

  2. 我需要能够为封装它的内容设置边框。但是,当我为选项卡内容设置边框时,它会在所有内容(包括选项卡)周围粘贴边框。我做错了什么?

提前感谢您的帮助!

【问题讨论】:

    标签: html css twitter-bootstrap


    【解决方案1】:
    1. 将您的 css 的第 89 行上的 float:left 替换为 width:100px
    2. 在 CSS 的第 109 行将 border-color: #ddd transparent #ddd #ddd; 替换为 border:1px solid #ddd;
    3. 如果你想让你的标签内容在右侧,那么在css下面添加

      .tab-content
      {
       float: right;
       margin: 0 10px;
      }
      

    还有很多不必要的css代码。

    这是你的 CSS 引导 http://www.bootply.com/RgdCqhNWSv

    这里是 bootply,没有不必要的 css 代码。 http://www.bootply.com/TYLrCsfBH2

    【讨论】:

    • 感谢您的回复,但这不起作用(如您单击“运行代码 sn-p”所见)。首先,内容显示在顶部,需要在选项卡的右侧,其次,它没有显示在左侧的底部。看起来它在左侧的顶部。这正是发生在我身上的事情。跨度>
    • 我不想让你认为我不感谢你的帮助。我愿意!但是,当我更改选项卡内容的宽度时,内容会显示在左侧,而不是右侧。是我的错。我应该展示一个不是 100% 宽度的示例。
    • 我在 bootply 中运行了你的更改,因为这里的 sn-p 不包括 bootstrap。如果你也这样做,你会看到你的代码是如何不工作的。我真的希望它能够工作,因为我还需要能够将选项卡从左侧切换到右侧(在底部),并且您的代码比其他代码涉及的更改更少。
    • 是的,我已经看到了“修复”。我没有使用它,因为它涉及太多的宽度硬编码,而不是使用其他 css 来排列东西。 github上其实有更好的例子,但是没有解决左下角和右下角的tab...
    • 请忽略第三条评论。我发错地方了!
    【解决方案2】:

    基于一些研究和这个技巧https://cleansupersites.com/bootstrap-left-side-tabs/,我发现这个解决方案可能对你有用。

    我在那里对你的 bootply 进行了分叉和修改,为左右标签工作:http://www.bootply.com/O7jv2YhMBn

    这是 Bootstrap 3.3.7 上的完整 sn-p

    /* tabs top, right-align */
    
      .tabs-right-align
      {
        text-align: right;
        font-size: 0;
        /* prevent floated child bug */
      }
      .tabs-right-align>li 
      {
        display: inline-block;
        clear: left;
        float: none;
        text-align: right;
        font-size: 12px;
      }
    
    /* custom inclusion of right, left and below tabs */
    
    .tabs-below > .nav-tabs,
    .tabs-right > .nav-tabs,
    .tabs-left > .nav-tabs {
      border-bottom: 0;
    }
    
    .nav-tabs
    {
      border-bottom: 0px;
    }
    .tab-content
    {
      border-right: 1px solid #ddd;
      border-left: 1px solid #ddd;
      border-top: 1px solid #ddd;
      border-bottom: 1px solid #ddd;
    }
    
    .tab-content > .tab-pane,
    .pill-content > .pill-pane {
      display: none;
    }
    
    .tab-content > .active,
    .pill-content > .active {
      display: block;
      min-height: 122px;
    }
    
    .tabs-below > .nav-tabs {
      border-top: 1px solid #ddd;
    }
    
    .tabs-below > .nav-tabs > li {
      margin-bottom: 0;
    }
    
    .tabs-below > .nav-tabs > li > a {
      -webkit-border-radius: 0px 0 4px 4px;
         -moz-border-radius: 0px 0 4px 4px;
              border-radius: 0px 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;
    }
    
    .tabs-left > .nav-tabs {
      float: left;
      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;
    }
    #tabListId {
      width: 150px;
    }
    .tabs-left .tab-content {
      margin-left: 149px;
      padding: 20px;
    }
    .tabs-right .tab-content {
      margin-right: 149px;
      padding: 20px;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
    <h2>Tabs left</h2>
      <div id="tabHeaderId01" class="tabbable tabs-left">
      <ul id="tabListId" class="nav nav-tabs">
        <li id="tabid_One" class="active"><a href="#lone" data-toggle="tab">One</a></li>
        <li id="tabid_Two"><a href="#ltwo" data-toggle="tab">Two</a></li>
        <li id="tabid_Twee"><a href="#ltwee" data-toggle="tab">Twee</a></li>
      </ul>
      <div id="tabContentsId01" class="tab-content">
        <div class="tab-pane active" id="lone">
          Secondo sed ac orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan.
          Aliquam in felis sit amet augue.<br>
          Secondo sed ac orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan.
          Aliquam in felis sit amet augue.<br>
          Secondo sed ac orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan.
          Aliquam in felis sit amet augue.<br>
          Secondo sed ac orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan.
          Aliquam in felis sit amet augue.
        </div>
        <div class="tab-pane" id="ltwo">
          Thirdamuno, ipsum dolor sit amet, consectetur adipiscing elit. Duis pharetra varius quam sit amet vulputate.
          Quisque mauris augue, molestie tincidunt condimentum vitae.
        </div>
        <div class="tab-pane" id="ltwee">
          Lorem ipsum dolor sit amet, charetra varius quam sit amet vulputate.
          Quisque mauris augue, molestie tincidunt condimentum vitae, gravida a libero.
        </div>
      </div>
    </div>
    <h2>Tabs right</h2>
      <div id="tabHeaderId01" class="tabbable tabs-right">
      <ul id="tabListId" class="nav nav-tabs">
        <li id="tabid_One" class="active"><a href="#rone" data-toggle="tab">One</a></li>
        <li id="tabid_Two"><a href="#rtwo" data-toggle="tab">Two</a></li>
        <li id="tabid_Twee"><a href="#rtwee" data-toggle="tab">Twee</a></li>
      </ul>
      <div id="tabContentsId01" class="tab-content">
        <div class="tab-pane active" id="rone">
          Secondo sed ac orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan.
          Aliquam in felis sit amet augue.<br>
          Secondo sed ac orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan.
          Aliquam in felis sit amet augue.<br>
          Secondo sed ac orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan.
          Aliquam in felis sit amet augue.<br>
          Secondo sed ac orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan.
          Aliquam in felis sit amet augue.<br>
          Secondo sed ac orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan.
          Aliquam in felis sit amet augue.
        </div>
        <div class="tab-pane" id="rtwo">
          Thirdamuno, ipsum dolor rsit amet, consectetur adipiscing elit. Duis pharetra varius quam sit amet vulputate.
          Quisque mauris augue, molestie tincidunt condimentum vitae.
        </div>
        <div class="tab-pane" id="rtwee">
          Lorem ipsum dolor sit amet, charetra varius quam sit amet vulputate.
          Quisque mauris augue, molestie tincidunt condimentum vitae, gravida a libero.
        </div>
      </div>
    </div>

    【讨论】:

    • 感谢您的回复!您是说我需要对 css 进行所有这些更改,还是只需要对 cme​​ts 指定的 3 项更改?
    • 另外,我需要让标签也显示在右手边的底部。你的代码有可能吗?我是否只是将内容移到底部?
    • 我不想让你认为我不感谢你的帮助。我愿意!但是,当我更改选项卡内容的宽度时,内容会显示在左侧,而不是右侧。是我的错。我应该展示一个不是 100% 宽度的示例。
    • 我在 bootply 中运行了你的更改,因为这里的 sn-p 不包括 bootstrap。如果你也这样做,你会看到你的代码是如何不工作的。我真的希望它能够工作,因为我还需要能够将选项卡从左侧切换到右侧(在底部),并且您的代码比其他代码涉及的更改更少。
    • 您好 aaava,我在原始答案中添加了 sn-p,并带有左右两个选项卡的示例。
    猜你喜欢
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 2011-03-21
    • 2016-02-18
    相关资源
    最近更新 更多