mdui
Version:
a CSS Framework based on material design
156 lines (135 loc) • 3.2 kB
text/less
/**
* =============================================================================
* ************ Bottom navigation 底部导航栏 ************
* =============================================================================
*/
@import '../headroom/index';
.mdui-bottom-nav {
position: relative;
display: flex;
height: 56px;
margin: 0 auto;
padding: 0;
overflow: hidden;
white-space: nowrap;
@media (min-width: @screen-sm-min) {
&::before {
flex-grow: 1;
content: ' ';
}
&::after {
flex-grow: 1;
content: ' ';
}
}
a {
display: flex;
flex: 1;
// 使图标和文本垂直排列
flex-direction: column;
align-items: center;
justify-content: center;
min-width: 32px;
max-width: none;
padding: 8px 12px 10px 12px;
overflow: hidden;
color: inherit;
font-size: 12px;
text-align: center;
text-decoration: none;
text-overflow: ellipsis;
cursor: pointer;
opacity: 0.7;
transition: all .2s @animation-curve-default ;
user-select: none;
will-change: padding;
@media (min-width: @screen-sm-min) {
max-width: 144px;
}
.mdui-icon {
opacity: 0.7;
}
label {;
display: block;
width: 100%;
cursor: pointer;
transition: transform .2s @animation-curve-default ;
will-change: font-size;
}
.mdui-icon + label {
margin-top: 6px;
}
// 激活状态的导航项
&.mdui-bottom-nav-active {
color: @color-default-500;
font-size: 14px;
opacity: 1;
.mdui-icon {
opacity: 1;
}
}
}
}
/* 只在激活时显示文本 */
&.mdui-bottom-nav-text-auto {
a {
min-width: 32px;
padding-right: 0;
padding-left: 0;
@media (min-width: @screen-sm-min) {
max-width: 156px;
}
.mdui-icon {
padding-top: 16px;
transition: padding-top .2s @animation-curve-default;
will-change: padding-top;
}
label {
transform: scale(0);
}
&.mdui-bottom-nav-active {
padding-right: 18px;
padding-left: 18px;
.mdui-icon {
padding-top: 0;
}
label {
transform: scale(1);
}
}
}
}
/* 固定到页面底部 */
.mdui-bottom-nav-fixed {
.mdui-bottom-nav {
position: fixed;
right: 0;
bottom: 0;
left: 0;
}
padding-bottom: 56px;
}
/**
* =============================================================================
* ************ Bottom Nav 主色 ************
* =============================================================================
*/
& {
.loop-primary-theme(@counter-color) when (@counter-color > 0) {
.loop-primary-theme((@counter-color - 1));
@colorName: extract(@globalPrimaryColors, @counter-color);
@color: 'color-@{colorName}-500';
.mdui-theme-primary-@{colorName} when not (@colorName = null) {
.mdui-bottom-nav a.mdui-bottom-nav-active {
color: @@color;
}
}
}
.loop-primary-theme(length(@globalPrimaryColors));
}
/* 带背景色的底部导航栏 */
.mdui-bottom-nav[class*="mdui-color-"] {
.mdui-bottom-nav-active {
color: inherit ;
}
}