blog-admin-web/src/static/common.less
2026-04-01 14:44:13 +08:00

281 lines
6.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

html, body, #app, .layout {
margin: 0;
padding: 0;
height: 100%;
}
/* ===== 顶部导航栏 ===== */
.layout-header {
color: #fff;
background: linear-gradient(90deg, #1d2b45 0%, #2c3e60 100%);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
display: flex;
align-items: center;
position: relative;
div.main-title {
display: inline-block;
font-size: 20px;
font-weight: var(--el-font-weight-primary);
letter-spacing: 1px;
line-height: 60px;
}
.nav-btns-right {
display: inline-block;
position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%);
}
}
/* ===== 侧边栏 ===== */
.el-aside {
background: var(--el-fill-color-light);
border-right: 1px solid var(--el-border-color-light);
.el-menu {
// CSS 变量覆盖
--el-menu-bg-color: transparent;
--el-menu-border-color: transparent;
--el-menu-hover-bg-color: var(--el-fill-color);
--el-menu-active-color: var(--el-color-primary);
}
.el-menu-item {
// 圆角/间距/宽度无对应 CSS 变量,保留直接样式
border-radius: var(--el-border-radius-base);
margin: 2px 8px;
width: calc(100% - 16px);
&.is-active {
// 激活背景色无对应 CSS 变量,保留直接样式
background-color: var(--el-color-primary-light-9);
font-weight: var(--el-font-weight-primary);
}
}
.el-sub-menu__title:hover {
// Element Plus 子菜单标题 hover 使用 --el-menu-bg-color 而非 --el-menu-hover-bg-color
// 因此无法通过变量覆盖,保留直接样式
background-color: var(--el-fill-color);
}
}
/* ===== 主内容区 ===== */
.el-main.layout-main {
--el-main-padding: 0;
display: flex;
flex-direction: column;
background: var(--el-fill-color);
> .layout-tabs {
margin: 12px 16px 0;
}
> .layout-content {
margin: 12px 16px;
overflow: auto;
background: var(--el-bg-color);
border-radius: 10px;
border: 1px solid var(--el-border-color-lighter);
padding: 20px;
flex-grow: 1;
flex-basis: 0;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}
> .layout-copy {
text-align: center;
padding-bottom: 12px;
color: var(--el-text-color-placeholder);
font-size: var(--el-font-size-extra-small);
}
/* ===== 页面布局(用于带分页的表格页面)===== */
.page-wrapper {
display: flex;
flex-direction: column;
height: 100%;
}
.table-container {
// CSS 变量覆盖:表头背景/文字色、行悬停色、边框色、正文色
--el-table-header-bg-color: var(--el-fill-color-light);
--el-table-header-text-color: var(--el-text-color-regular);
--el-table-row-hover-bg-color: var(--el-color-primary-light-9);
--el-table-border-color: var(--el-border-color-lighter);
--el-table-text-color: var(--el-text-color-primary);
// 固定高度让表头固定tbody滚动
flex: 1;
border-radius: var(--el-border-radius-base);
overflow: hidden;
border-left: 1px solid var(--el-border-color-lighter);
border-right: 1px solid var(--el-border-color-lighter);
border-top: 1px solid var(--el-border-color-lighter);
&::before {
display: none;
}
th.el-table__cell {
font-weight: var(--el-font-weight-primary);
font-size: var(--el-font-size-small);
}
td.el-table__cell {
// 行分隔线比表头边框更浅,与 --el-table-border-color 不同,需直接覆盖
border-bottom-color: var(--el-fill-color);
font-size: var(--el-font-size-small);
}
.el-button.is-link {
font-size: 16px;
padding: 4px 6px;
}
}
/* ===== 分页 ===== */
.page-container {
margin-top: 20px;
display: flex;
justify-content: center;
}
/* ===== 操作栏 ===== */
.btn-container {
margin-bottom: 14px;
display: flex;
align-items: center;
.search-btn {
margin-left: auto;
}
}
}
/* ===== 表单弹窗 ===== */
body .el-dialog {
// CSS 变量覆盖:圆角、清除 element-plus 2.x 新增的根元素 padding
--el-dialog-border-radius: 12px;
--el-dialog-padding-primary: 0;
// overflow:hidden 无对应 CSS 变量,保留直接样式(使圆角裁剪生效)
overflow: hidden;
.el-dialog__header {
background: var(--el-fill-color-light);
border-bottom: 1px solid var(--el-border-color-lighter);
padding: 16px 20px;
margin: 0;
.el-dialog__title {
font-size: var(--el-font-size-base);
font-weight: var(--el-font-weight-primary);
color: var(--el-text-color-primary);
}
}
.el-dialog__body {
padding: 24px 24px 8px;
}
.el-dialog__footer {
border-top: 1px solid var(--el-border-color-lighter);
padding: 12px 20px;
background: var(--el-fill-color-lighter);
}
}
/* ===== 搜索表单 ===== */
.el-form--inline {
margin-bottom: 14px;
.el-form-item {
margin-bottom: 0;
}
.el-select {
min-width: 160px;
}
}
/* ===== 其他工具类 ===== */
.carsouel-img {
position: relative;
left: 50%;
transform: translateX(-50%);
height: 500px;
width: auto;
}
.main-view {
position: relative;
height: 100%;
}
.custom-drawer {
> .el-drawer__header {
margin-bottom: 0;
}
> .el-drawer__body {
overflow: auto;
}
}
.el-tabs--card.nav-tabs {
> .el-tabs__header {
margin-bottom: 0;
border-bottom: none;
background: var(--el-bg-color);
padding: 0 4px;
border-radius: 8px 8px 0 0;
.el-tabs__nav-wrap {
margin-bottom: 0;
}
.el-tabs__nav {
border: none;
}
.el-tabs__item {
height: 36px;
line-height: 36px;
padding: 0 16px;
font-size: var(--el-font-size-small);
color: var(--el-text-color-secondary);
border: none;
border-radius: 6px 6px 0 0;
margin-right: 2px;
transition: color 0.2s, background 0.2s;
position: relative;
&:hover {
color: var(--el-color-primary);
background: var(--el-color-primary-light-9);
}
&.is-active {
color: var(--el-color-primary);
font-weight: var(--el-font-weight-primary);
background: var(--el-fill-color);
&::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 2px;
background: var(--el-color-primary);
border-radius: 2px 2px 0 0;
}
}
.is-icon-close {
font-size: 11px;
margin-left: 4px;
border-radius: 50%;
transition: background 0.2s;
&:hover {
background: var(--el-color-danger-light-7);
color: var(--el-color-danger);
}
}
}
}
}