/* Element Plus 基础样式 */ :root { --el-color-primary: #409EFF; --el-color-success: #67C23A; --el-color-warning: #E6A23C; --el-color-danger: #F56C6C; --el-color-info: #909399; --el-color-white: #FFFFFF; --el-color-black: #000000; --el-color-gray-1: #F5F7FA; --el-color-gray-2: #E4E7ED; --el-color-gray-3: #C0C4CC; --el-color-gray-4: #909399; --el-color-gray-5: #606266; --el-color-gray-6: #303133; --el-border-radius-base: 4px; --el-border-radius-small: 2px; --el-border-radius-round: 20px; --el-border-radius-circle: 100%; --el-border-width: 1px; --el-border-style: solid; --el-border-color-light: #E4E7ED; --el-border-color: #DCDFE6; --el-border-color-dark: #C0C4CC; --el-bg-color: #FFFFFF; --el-bg-color-page: #F2F3F5; --el-bg-color-overlay: #FFFFFF; --el-text-color-primary: #303133; --el-text-color-regular: #606266; --el-text-color-secondary: #909399; --el-text-color-placeholder: #C0C4CC; --el-text-color-disabled: #C0C4CC; --el-fill-color: #F0F2F5; --el-fill-color-light: #F5F7FA; --el-fill-color-lighter: #FFFFFF; --el-fill-color-extra-light: #Fafafa; --el-fill-color-dark: #E4E7ED; --el-fill-color-darker: #DCDFE6; --el-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04); --el-box-shadow-light: 0 2px 12px 0 rgba(0, 0, 0, 0.1); --el-box-shadow-lighter: 0 0 12px rgba(0, 0, 0, 0.06); --el-box-shadow-dark: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.12); --el-font-size-extra-large: 20px; --el-font-size-large: 18px; --el-font-size-medium: 16px; --el-font-size-base: 14px; --el-font-size-small: 13px; --el-font-size-extra-small: 12px; --el-font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif; --el-transition-duration: 0.3s; --el-transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1); --el-transition-delay: 0s; --el-transform-origin: center; } /* Container 布局组件 */ .el-container { display: flex; flex-direction: row; flex: 1; flex-basis: auto; box-sizing: border-box; min-width: 0; } .el-container.is-vertical { flex-direction: column; } .el-header, .el-footer { flex: 0 0 auto; } .el-aside { flex: 0 0 auto; } .el-main { flex: 1; box-sizing: border-box; min-width: 0; } /* Menu 组件 */ .el-menu { position: relative; margin: 0; padding: 0; list-style: none; background-color: var(--el-menu-bg-color, #FFFFFF); color: var(--el-menu-text-color, #303133); border-radius: var(--el-border-radius-base); box-sizing: border-box; } .el-menu--horizontal { display: flex; flex-wrap: nowrap; width: 100%; border-bottom: var(--el-border-width) var(--el-border-style) var(--el-border-color, #DCDFE6); } .el-menu--horizontal > .el-menu-item { float: left; height: var(--el-menu-item-height, 60px); line-height: var(--el-menu-item-height, 60px); margin: 0; padding: 0 20px; box-sizing: border-box; border-bottom: 2px solid transparent; cursor: pointer; position: relative; transition: all var(--el-transition-duration); } .el-menu--vertical { min-height: 100%; border-right: var(--el-border-width) var(--el-border-style) var(--el-border-color, #DCDFE6); } .el-menu--vertical > .el-menu-item { height: var(--el-menu-item-height, 60px); line-height: var(--el-menu-item-height, 60px); margin: 0; padding: 0 20px; box-sizing: border-box; border-right: 3px solid transparent; cursor: pointer; position: relative; transition: all var(--el-transition-duration); } .el-menu-item { position: relative; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--el-menu-text-color, #303133); height: 40px; line-height: 40px; padding: 0 20px; box-sizing: border-box; cursor: pointer; transition: all var(--el-transition-duration); } .el-menu-item:hover { background-color: var(--el-menu-hover-bg-color, #ECF5FF); color: var(--el-menu-active-color, var(--el-color-primary)); } .el-menu-item.is-active { color: var(--el-menu-active-color, var(--el-color-primary)); background-color: var(--el-menu-active-bg-color, #ECF5FF); } .el-submenu { position: relative; } .el-submenu__title { position: relative; display: flex; align-items: center; height: 40px; line-height: 40px; padding: 0 20px; color: var(--el-menu-text-color, #303133); cursor: pointer; transition: all var(--el-transition-duration); } .el-submenu__title:hover { background-color: var(--el-menu-hover-bg-color, #ECF5FF); color: var(--el-menu-active-color, var(--el-color-primary)); } .el-submenu__icon-arrow { position: absolute; right: 20px; transition: transform var(--el-transition-duration); } .el-submenu.is-opened > .el-submenu__title .el-submenu__icon-arrow { transform: rotate(180deg); } .el-submenu .el-menu { background-color: var(--el-menu-bg-color, #FFFFFF); } .el-menu--collapse { width: 40px; } .el-menu--collapse .el-menu-item, .el-menu--collapse .el-submenu__title { padding: 0; text-align: center; } .el-menu--collapse .el-submenu__title .el-submenu__icon-arrow { display: none; } .el-menu--collapse .el-submenu__title span { display: none; } /* Popconfirm 组件 */ .el-popconfirm { position: relative; } .el-popconfirm__reference { cursor: pointer; } /* 滚动条样式 */ .el-scrollbar { position: relative; overflow: hidden; } .el-scrollbar__wrap { overflow: scroll; height: 100%; } .el-scrollbar__wrap::-webkit-scrollbar { width: 6px; height: 6px; } .el-scrollbar__wrap::-webkit-scrollbar-track { background: var(--el-fill-color-light, #F5F7FA); } .el-scrollbar__wrap::-webkit-scrollbar-thumb { background: var(--el-color-gray-3, #C0C4CC); border-radius: 3px; } .el-scrollbar__wrap::-webkit-scrollbar-thumb:hover { background: var(--el-color-gray-4, #909399); } /* 适配侧边栏的样式 */ .el-aside { background-color: #424242; color: #fff; overflow-y: auto; } .el-aside .el-menu { background-color: transparent; border-right: none; } .el-aside .el-menu-item, .el-aside .el-submenu__title { color: #fff; } .el-aside .el-menu-item:hover, .el-aside .el-submenu__title:hover { background-color: rgba(255, 255, 255, 0.1); color: #fff; } .el-aside .el-menu-item.is-active { background-color: rgba(64, 158, 255, 0.2); color: #fff; } .el-aside .el-submenu .el-menu { background-color: rgba(0, 0, 0, 0.2); } .el-aside .el-submenu .el-menu-item { color: #fff; } .el-aside .el-submenu .el-menu-item:hover { background-color: rgba(255, 255, 255, 0.1); } /* 过渡动画 */ .el-zoom-in-left-enter-active, .el-zoom-in-left-leave-active { transition: all 0.3s ease; } .el-zoom-in-left-enter-from, .el-zoom-in-left-leave-to { opacity: 0; transform: translateX(-20px); } .el-zoom-in-top-enter-active, .el-zoom-in-top-leave-active { transition: all 0.3s ease; } .el-zoom-in-top-enter-from, .el-zoom-in-top-leave-to { opacity: 0; transform: translateY(-20px); } /* 工具提示 */ .el-tooltip { position: relative; display: inline-block; } .el-tooltip__popper { position: absolute; z-index: 2000; padding: 10px; color: #fff; font-size: 12px; line-height: 1.2; text-align: center; background-color: rgba(0, 0, 0, 0.75); border-radius: 4px; box-sizing: border-box; word-break: break-all; } /* 图标字体 */ .el-icon { font-family: element-icons !important; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; vertical-align: baseline; display: inline-block; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }