Я пытаюсь реализовать выровненные по левому краю вкладки, используя плагин Tab jquery в Bootstrap 3, где вкладки отображаются вертикально слева от содержимого вкладки, а не сверху. Когда я попробую следующее:
<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?
Вкладка "Влево", "Вправо" и "Вниз" была удалена из 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
UPDATE
Если вам не нужен точный внешний вид вкладки (соответствующим образом помечается слева или справа при активации каждой вкладки), вы можете просто использовать nav-stacked
вместе с Bootstrap col-*
, чтобы плавать вкладки на вкладке слева или справа...
nav-stacked
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>
Команда 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. Спасибо Шон.
Чтобы получить левую и правую вкладки (теперь также с боком) поддержку Bootstrap 3, можно использовать компонент bootstrap-vertical-tabs.
Вам не нужно добавлять это обратно. Это было устранено целенаправленно. Документация несколько изменилась, и необходимый класс CSS ( "nav-stacked" ) упоминается только под компонентом таблеток, но также должен работать и с вкладками.
В этом учебном пособии показано, как правильно настроить Bootstrap 3 для выполнения вертикальных вкладок:
tutsme-webdesign.info/bootstrap-3-toggable-tabs-and-pills
Здесь вы идете, все варианты вложенной навигации с рабочими примерами. http://www.tutorialspark.com/twitterBootstrap/TwitterBootstrap_Navigations.php
.nav
класс.nav
, а затем с помощью сетки задать ширину навигационной панели и вашего контента. Нет необходимости в «сложенной навигации», так как.nav
составляется по умолчанию.