使用 Bootstrap v4 证明 Nav-pills 的合理性
Justify Nav-pills with Bootstrap v4
我想在 div 的宽度上调整我的导航栏。问题是我使用 Bootstrap v4
而 nav-justify class 尚不可用。
代码如下:
<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link active" href="#subscribed" data-toggle="tab">Mes inscriptions</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#eventPassed" data-toggle="tab">Événements passés</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#eventNow" data-toggle="tab">Événements en cours</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#eventIncoming" data-toggle="tab">Événements futurs</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#eventCreation" data-toggle="tab">Créer un événement</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#eventOwn" data-toggle="tab">Mes événements</a>
</li>
</ul>
我不想在 CSS 中使用百分比来执行此操作;我想要响应式的东西。
的确 nav-justify class
不见了。暂时可以根据TB3的代码自行添加:
SCSS代码:
// Justified nav links
// -------------------------
@mixin nav-justified {
width: 100%;
.nav-item {
float: none;
}
.nav-link {
text-align: center;
margin-bottom: 5px;
}
> .dropdown .dropdown-menu { //todo: remove child selector
top: auto;
left: auto;
}
@include media-breakpoint-up(sm) {
.nav-item {
display: table-cell;
width: 1%;
}
.nav-link {
margin-bottom: 0;
}
}
}
// Move borders to anchors instead of bottom of list
//
// Mixin for adding on top the shared `.nav-justified` styles for our tabs
@mixin nav-tabs-justified {
border-bottom: 0;
.nav-link {
// Override margin from .nav-tabs
margin-right: 0;
border-radius: $border-radius;
}
.nav-link.active,
.nav-link.active:hover,
.nav-link.active:focus {
border: 1px solid $nav-tabs-justified-link-border-color;
}
@include media-breakpoint-up(sm) {
.nav-link {
border-bottom: 1px solid $nav-tabs-justified-link-border-color;
border-radius: $border-radius $border-radius 0 0;
}
.nav-link.active,
.nav-link.active:hover,
.nav-link.active:focus {
border-bottom-color: $nav-tabs-justified-active-link-border-color;
}
}
}
.nav-justified {
@include nav-justified;
@include nav-tabs-justified;
}
编译CSS代码:
.nav-justified {
width: 100%;
border-bottom: 0; }
.nav-justified .nav-item {
float: none; }
.nav-justified .nav-link {
text-align: center;
margin-bottom: 5px; }
.nav-justified > .dropdown .dropdown-menu {
top: auto;
left: auto; }
@media (min-width: 544px) {
.nav-justified .nav-item {
display: table-cell;
width: 1%; }
.nav-justified .nav-link {
margin-bottom: 0; } }
.nav-justified .nav-link {
margin-right: 0;
border-radius: 0.25rem; }
.nav-justified .nav-link.active,
.nav-justified .nav-link.active:hover,
.nav-justified .nav-link.active:focus {
border: 1px solid #ddd; }
@media (min-width: 544px) {
.nav-justified .nav-link {
border-bottom: 1px solid #ddd;
border-radius: 0.25rem 0.25rem 0 0; }
.nav-justified .nav-link.active,
.nav-justified .nav-link.active:hover,
.nav-justified .nav-link.active:focus {
border-bottom-color: #fff; } }
HTML
<div class="container">
<ul class="nav nav-pills nav-justified">
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Another link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
</div>
大屏幕
小屏
更新:从 BS4 alpha 6 开始,nav-justified
回来了,还有一个新的 class nav-fill
http://v4-alpha.getbootstrap.com/components/navs/#fill-and-justify
他们在 Boostrap 的文档中有它 v.4
alpha
, on this page,但现在它坏了。
有对应的ticket for this, and there is already created pull request for v4-dev
branch.
为了 post 这里的整个代码片段,没有意义,所以 the changes you may see here,并为你自己的 SASS 文件打补丁:
// Justified nav links
// -------------------------
@mixin nav-justified {
width: 100%;
.nav-item {
float: none;
}
.nav-link {
margin-bottom: $nav-tabs-justified-link-margin-bottom;
text-align: center;
}
.dropdown .dropdown-menu {
top: auto;
left: auto;
}
@include media-breakpoint-up(md) {
.nav-item {
display: table-cell;
width: 1%;
}
.nav-link {
margin-bottom: 0;
}
}
}
// Move borders to anchors instead of bottom of list
//
// Mixin for adding on top the shared `.nav-justified` styles for our tabs
@mixin nav-tabs-justified {
border-bottom: 0;
.nav-link { // Override margin from .nav-tabs
margin-right: 0;
@include border-radius($nav-tabs-justified-link-border-radius);
}
.nav-link.active {
@include plain-hover-focus {
border: $nav-tabs-justified-link-border-width solid $nav-tabs-justified-link-border-color;
}
}
@include media-breakpoint-up(md) {
.nav-link,
.nav-link.disabled,
.nav-link.disabled:hover {
border-bottom: $nav-tabs-justified-link-border-width solid $nav-tabs-justified-link-border-color;
@include border-top-radius($nav-tabs-justified-link-border-radius);
}
.nav-link.active {
@include plain-hover-focus {
border-bottom-color: $nav-tabs-justified-active-link-border-color;
}
}
}
}
从 Bootstrap alpha 6 开始,nav-justified
回来了,并且有一个新的 nav-fill
class。
http://v4-alpha.getbootstrap.com/components/navs/#fill-and-justify
您只需将 class 添加到您的 nav
..
<ul class="nav nav-pills nav-justified">
..
</ul>
我想在 div 的宽度上调整我的导航栏。问题是我使用 Bootstrap v4
而 nav-justify class 尚不可用。
代码如下:
<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link active" href="#subscribed" data-toggle="tab">Mes inscriptions</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#eventPassed" data-toggle="tab">Événements passés</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#eventNow" data-toggle="tab">Événements en cours</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#eventIncoming" data-toggle="tab">Événements futurs</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#eventCreation" data-toggle="tab">Créer un événement</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#eventOwn" data-toggle="tab">Mes événements</a>
</li>
</ul>
我不想在 CSS 中使用百分比来执行此操作;我想要响应式的东西。
的确 nav-justify class
不见了。暂时可以根据TB3的代码自行添加:
SCSS代码:
// Justified nav links
// -------------------------
@mixin nav-justified {
width: 100%;
.nav-item {
float: none;
}
.nav-link {
text-align: center;
margin-bottom: 5px;
}
> .dropdown .dropdown-menu { //todo: remove child selector
top: auto;
left: auto;
}
@include media-breakpoint-up(sm) {
.nav-item {
display: table-cell;
width: 1%;
}
.nav-link {
margin-bottom: 0;
}
}
}
// Move borders to anchors instead of bottom of list
//
// Mixin for adding on top the shared `.nav-justified` styles for our tabs
@mixin nav-tabs-justified {
border-bottom: 0;
.nav-link {
// Override margin from .nav-tabs
margin-right: 0;
border-radius: $border-radius;
}
.nav-link.active,
.nav-link.active:hover,
.nav-link.active:focus {
border: 1px solid $nav-tabs-justified-link-border-color;
}
@include media-breakpoint-up(sm) {
.nav-link {
border-bottom: 1px solid $nav-tabs-justified-link-border-color;
border-radius: $border-radius $border-radius 0 0;
}
.nav-link.active,
.nav-link.active:hover,
.nav-link.active:focus {
border-bottom-color: $nav-tabs-justified-active-link-border-color;
}
}
}
.nav-justified {
@include nav-justified;
@include nav-tabs-justified;
}
编译CSS代码:
.nav-justified {
width: 100%;
border-bottom: 0; }
.nav-justified .nav-item {
float: none; }
.nav-justified .nav-link {
text-align: center;
margin-bottom: 5px; }
.nav-justified > .dropdown .dropdown-menu {
top: auto;
left: auto; }
@media (min-width: 544px) {
.nav-justified .nav-item {
display: table-cell;
width: 1%; }
.nav-justified .nav-link {
margin-bottom: 0; } }
.nav-justified .nav-link {
margin-right: 0;
border-radius: 0.25rem; }
.nav-justified .nav-link.active,
.nav-justified .nav-link.active:hover,
.nav-justified .nav-link.active:focus {
border: 1px solid #ddd; }
@media (min-width: 544px) {
.nav-justified .nav-link {
border-bottom: 1px solid #ddd;
border-radius: 0.25rem 0.25rem 0 0; }
.nav-justified .nav-link.active,
.nav-justified .nav-link.active:hover,
.nav-justified .nav-link.active:focus {
border-bottom-color: #fff; } }
HTML
<div class="container">
<ul class="nav nav-pills nav-justified">
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Another link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
</div>
大屏幕
小屏
更新:从 BS4 alpha 6 开始,nav-justified
回来了,还有一个新的 class nav-fill
http://v4-alpha.getbootstrap.com/components/navs/#fill-and-justify
他们在 Boostrap 的文档中有它 v.4
alpha
, on this page,但现在它坏了。
有对应的ticket for this, and there is already created pull request for v4-dev
branch.
为了 post 这里的整个代码片段,没有意义,所以 the changes you may see here,并为你自己的 SASS 文件打补丁:
// Justified nav links
// -------------------------
@mixin nav-justified {
width: 100%;
.nav-item {
float: none;
}
.nav-link {
margin-bottom: $nav-tabs-justified-link-margin-bottom;
text-align: center;
}
.dropdown .dropdown-menu {
top: auto;
left: auto;
}
@include media-breakpoint-up(md) {
.nav-item {
display: table-cell;
width: 1%;
}
.nav-link {
margin-bottom: 0;
}
}
}
// Move borders to anchors instead of bottom of list
//
// Mixin for adding on top the shared `.nav-justified` styles for our tabs
@mixin nav-tabs-justified {
border-bottom: 0;
.nav-link { // Override margin from .nav-tabs
margin-right: 0;
@include border-radius($nav-tabs-justified-link-border-radius);
}
.nav-link.active {
@include plain-hover-focus {
border: $nav-tabs-justified-link-border-width solid $nav-tabs-justified-link-border-color;
}
}
@include media-breakpoint-up(md) {
.nav-link,
.nav-link.disabled,
.nav-link.disabled:hover {
border-bottom: $nav-tabs-justified-link-border-width solid $nav-tabs-justified-link-border-color;
@include border-top-radius($nav-tabs-justified-link-border-radius);
}
.nav-link.active {
@include plain-hover-focus {
border-bottom-color: $nav-tabs-justified-active-link-border-color;
}
}
}
}
从 Bootstrap alpha 6 开始,nav-justified
回来了,并且有一个新的 nav-fill
class。
http://v4-alpha.getbootstrap.com/components/navs/#fill-and-justify
您只需将 class 添加到您的 nav
..
<ul class="nav nav-pills nav-justified">
..
</ul>