Bootstrap 3のスタックタブ


157

私は、Bootstrap 3のタブ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プラグインで適切な左右タブレンダリングが可能かどうか誰かが知っていますか?


1
.navクラスを単独で使用し、グリッドでナビゲーションの幅とコンテンツを設定できます。.navデフォルトでスタックされているため、「スタックされたナビゲーション」は必要ありません。
Patrick Berkeley

回答:


236

左、右、下のタブは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-stackedBootstrapとともに簡単に使用して、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>

33
これは問題を完全に解決します。しかし、なぜ彼らがこれをBootstrap 3から引き出したのか疑問に思っています。
osmbergs 2013

24
なぜ削除されたのですか?oO
ルーズベルト

4
はい、.navだけが積み重ねられていますが、選択/アクティブ化されている場合、タブ(適切な左、右の境界)のようには見えません。それがタブの目的です。
Zim

17
これを元に戻す必要はありません。これは意図的に削除されました。これをJavaScript /タブでどのように処理するかについては、公式のBootstrapドキュメントを参照してください。Bootstrap 3設定を適切に使用して垂直タブを実行する方法に関するこのチュートリアルも参照してください。tutsme-webdesign.info/bootstrap-3-toggable-tabs-and-pills
ニールモンロー

3
単純なテキストコンテンツの場合、どちらのソリューションでも問題ありません。他の誰かが私が話している問題に直面している場合:@dbtekのソリューションが最もうまくいきました:bootstrap-vertical-tabs CSSファイルを含める必要がありました... @dbtekに感謝します!
msanjay 2014年

47

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を使用して代わりにを使用してナビ錠剤を有効にする必要がないオプションを提供しますdata-toggle="pill"。こちらで確認してください:http : //bootply.com/96067。ショーン、ありがとう。


10
JavaScriptを含める必要はありません。data-toggle = "pill"を各aタグに追加すると、ブートストラップを使用して自動的に機能します。あなたはここに見ることができます:bootply.com/96067
SeanK

@SeanKに感謝します。答えにそれを追加しました。
David Lemayian 2013年

これは良かったので、カスタムCSSなしでこれを使用しましたが、@ Skellyのタブには、より「継続的な」外観とアクティブなタブとコンテンツの関係があります。同じことがここで何らかの方法で達成できればいいのですが、私はどのように理解できませんでした。簡単にするために、フォークを1つの例に絞り込みました:bootply.com/QZfrLF0XjD
msanjay

1
一方、私はいくつかの色付きのコンテンツを入れましたが、これは受け入れられたアプローチよりもはるかにうまく処理するように見えました。bootply.com/SeQ6z7fhbQおよび bootply.com/cre9NpmXpAを
msanjay


9

これを元に戻す必要はありません。これは意図的に削除されました。ドキュメントは多少変更され、必要なCSSクラス(「nav-stacked」)はpillsコンポーネントでのみ言及されていますが、タブでも機能するはずです。

このチュートリアルでは、Bootstrap 3設定を適切に使用して垂直タブを実行する方法を示します。tutsme-webdesign.info / bootstrap- 3 -toggable- tabs
-and-pills


彼らは今それを完全に削除しました。手順については、上記のリンクを参照してください。
Neil Monroe、

どうもありがとうございました。あなたがリンクした記事は、実用的で実用的な例と多くの説明を提供します。これはまさに私が探していたものです。
Aluan Haddad

それは価値があるもののために、これはナビ錠剤のために正しく見えます。nav-tabsは積み重ねられますが、スタイルは上部の水平タブのように見えます。OPがnav-tabsについて具体的に尋ねたので、これは許容できる回答とは言えないと思います。
Jay Mathis

URLは機能しなくなりました!この答えは無意味になります!
Bobort
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.