mdui
Version:
a CSS Framework based on material design
196 lines (165 loc) • 4.27 kB
text/less
/**
* =============================================================================
* ************ Menu 菜单 ************
* =============================================================================
*/
// 普通菜单宽度基数
@menu-simple-x: 56px;
// 级联菜单宽度基数
@menu-cascade-x: 64px;
/* 菜单 */
.mdui-menu {
position: fixed;
z-index: 99999;
display: block;
box-sizing: border-box;
width: @menu-simple-x * 3;
margin: 0;
padding: 8px 0;
// 简单菜单高度超出窗口高度时,使菜单边框和窗口保持一定距离,菜单内出现滚动条
overflow-y: auto;
color: @color-black-text;
font-size: 16px;
list-style: none;
background-color: #fff;
border-radius: 2px;
transform: scale(0);
visibility: hidden;
opacity: 0;
transition-timing-function: @animation-curve-linear-out-slow-in;
transition-duration: .3s;
transition-property: transform, opacity, visibility;
will-change: transform, opacity, visibility;
-webkit-overflow-scrolling: touch;
.mdui-shadow(8);
// 菜单中的分隔线,默认上下有 8px 的外边距
.mdui-divider {
margin-top: 8px;
margin-bottom: 8px;
}
}
/* 打开状态的菜单 */
.mdui-menu-open {
transform: scale(1);
visibility: visible;
opacity: 1;
}
/* 关闭中的菜单 */
.mdui-menu-closing {
transform: scale(1);
visibility: visible;
opacity: 0;
}
/* 菜单项 */
.mdui-menu-item {
position: relative;
&>a {
position: relative;
display: block;
height: 48px;
padding: 0 16px;
color: inherit;
line-height: 48px;
text-decoration: none;
user-select: none;
.mdui-text-truncate();
&:hover {
background-color: @color-grey-200;
}
}
// 子菜单默认隐藏,阴影更深
&>.mdui-menu {
position: absolute;
.mdui-shadow(9);
}
// 禁用的菜单条目
&[disabled] {
&>a {
color: @color-black-disabled ;
cursor: default;
&:hover {
background-color: inherit ;
}
.mdui-icon {
color: @color-black-icon-disabled;
}
}
}
}
/* 激活状态的菜单项 */
.mdui-menu-item-active {
background-color: @color-grey-200;
}
/* 菜单中的图标 */
.mdui-menu-item-icon {
display: inline-block;
box-sizing: border-box;
width: 40px;
padding-right: 16px;
color: @color-black-icon;
}
/* 菜单中的辅助文本或图标 */
.mdui-menu-item-helper {
float: right;
}
/* 有子菜单的条目的图标 */
.mdui-menu-item-more {
float: right;
width: 24px;
height: 24px;
margin: 4px 0;
//background-image: data-uri('image/svg+xml', './components/menu/svg/arrow_right_dark.svg');
// https://www.zhangxinxu.com/sp/svgo/ CSS 转义
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' opacity='.54'/%3E%3C/svg%3E");
}
/* 级联菜单 */
.mdui-menu-cascade {
width: @menu-cascade-x * 5;
padding: 16px 0;
// 级联菜单内部不出现滚动条
overflow: visible;
font-size: 15px;
&>.mdui-menu-item {
&>a {
height: 32px;
padding: 0 24px;
line-height: 32px;
}
}
}
/**
* =============================================================================
* ************ Menu dark ************
* =============================================================================
*/
.layout-theme({
.mdui-menu {
color: #fff;
background-color: @layout-dark-color-4;
}
.mdui-menu-item {
&>a {
&:hover {
background-color: @color-grey-700;
}
}
&[disabled] {
&>a {
color: @color-white-disabled ;
.mdui-icon {
color: @color-white-icon-disabled;
}
}
}
}
.mdui-menu-item-active {
background-color: @color-grey-700;
}
.mdui-menu-item-icon {
color: @color-white-icon;
}
.mdui-menu-item-more {
//background-image: data-uri('image/svg+xml', './components/menu/svg/arrow_right_light.svg');
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E");
}
});