228 lines
6.5 KiB
CSS
228 lines
6.5 KiB
CSS
/* WebUI3-skin - Layui Win11 风格窗口样式 (修复关闭按钮定位版) */
|
|
:root {
|
|
--primary-color: #0078d4;
|
|
--primary-hover: #106ebe;
|
|
--primary-pressed: #005a9e;
|
|
--background-color: #f3f3f3;
|
|
--surface-color: #ffffff;
|
|
--text-primary: #000000;
|
|
--text-secondary: #323130;
|
|
--text-disabled: #a19f9d;
|
|
--border-color: #e1dfdd;
|
|
--error-color: #d83b01;
|
|
--warning-color: #ff8c00;
|
|
--success-color: #107c10;
|
|
--border-radius: 8px;
|
|
--control-height: 32px;
|
|
--input-hover-border-color: #8a8a8a;
|
|
--hover-border-color: #e5e5e5;
|
|
--input-border-color: #efefef;
|
|
--hover-bgcolor: #f7f7f7;
|
|
--font-family: "Segoe UI Variable", "Segoe UI", system-ui, sans-serif;
|
|
/* Win11 关闭按钮 hover 背景色 */
|
|
--close-hover-bg: #E81123;
|
|
/* 定义标题栏高度,方便统一计算 */
|
|
--title-height: 44px;
|
|
}
|
|
|
|
.layui-layer.WebUI3-skin {
|
|
font-family: var(--font-family);
|
|
border-radius: var(--border-radius);
|
|
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
|
|
border: 1px solid var(--border-color);
|
|
overflow: hidden; /* 保持 */
|
|
background-color: var(--surface-color);
|
|
}
|
|
|
|
/* 窗口标题栏 */
|
|
.layui-layer.WebUI3-skin .layui-layer-title {
|
|
height: var(--title-height);
|
|
line-height: var(--title-height);
|
|
padding: 0 20px; /* 移除右侧大内边距,因为按钮现在贴边 */
|
|
background-color: var(--surface-color);
|
|
border-bottom: 1px solid var(--border-color);
|
|
color: var(--text-primary);
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
border-radius: var(--border-radius) var(--border-radius) 0 0;
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
/* === 核心修复区域:窗口控件容器 === */
|
|
.layui-layer.WebUI3-skin .layui-layer-setwin {
|
|
/* 1. 重置位置,使其紧贴窗口右上角,而不是默认的向内偏移 */
|
|
top: 0 !important;
|
|
right: 0 !important;
|
|
height: var(--title-height); /* 占满标题栏高度 */
|
|
/* 确保它位于内容之上 */
|
|
position: absolute;
|
|
z-index: 10;
|
|
}
|
|
|
|
/* 通用按钮样式基础 */
|
|
.layui-layer.WebUI3-skin .layui-layer-setwin a {
|
|
position: absolute;
|
|
top: 0;
|
|
width: 46px; /* Win11 按钮宽度通常稍大一点,增加点击区域 */
|
|
height: var(--title-height);
|
|
border: none;
|
|
background: transparent;
|
|
font-size: 10px; /* 用于定位图标,实际图标大小用伪元素或 background 控制 */
|
|
cursor: pointer;
|
|
transition: all 0.2s ease;
|
|
background-image: none !important;
|
|
/* 移除 Layui 默认的 margin 和 padding */
|
|
margin: 0 !important;
|
|
padding: 0 !important;
|
|
/* 使用 Flex 居中图标(如果使用伪元素)或者 text-align */
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
/* 绘制 Win11 风格的图标 */
|
|
.layui-layer.WebUI3-skin .layui-layer-btn a {
|
|
width: 100px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.layui-layer.WebUI3-skin .layui-layer-setwin a::after {
|
|
content: '';
|
|
display: block;
|
|
width: 10px;
|
|
height: 10px;
|
|
background-color: var(--text-secondary);
|
|
}
|
|
|
|
.layui-layer.WebUI3-skin .layui-layer-close {
|
|
width: 40px;
|
|
height: 100%;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
box-sizing: border-box;
|
|
right: 0;
|
|
}
|
|
|
|
.layui-layer.WebUI3-skin .layui-layer-close::after {
|
|
background: none;
|
|
font-size: 18px;
|
|
color: var(--background-color) !important;
|
|
line-height: 1;
|
|
font-weight: 300;
|
|
}
|
|
|
|
.layui-layer.WebUI3-skin .layui-icon-close::after {
|
|
color: var(--background-color) !important;
|
|
}
|
|
|
|
.layui-layer.WebUI3-skin .layui-layer-close:hover {
|
|
background-color: var(--close-hover-bg) !important;
|
|
}
|
|
.layui-layer.WebUI3-skin .layui-layer-close:hover::after {
|
|
color: #ffffff !important; /* hover 时图标变白 */
|
|
}
|
|
|
|
/* 2. 最大化按钮 (关闭按钮左侧) */
|
|
.layui-layer.WebUI3-skin .layui-layer-max {
|
|
right: 46px; /* 关闭按钮宽度 46px */
|
|
}
|
|
/* 最大化图标 (□) */
|
|
.layui-layer.WebUI3-skin .layui-layer-max::after {
|
|
background: none;
|
|
content: '□'; /* 简化示意 */
|
|
font-size: 14px;
|
|
line-height: 1;
|
|
}
|
|
|
|
/* 3. 最小化按钮 (最大化按钮左侧) */
|
|
.layui-layer.WebUI3-skin .layui-layer-min {
|
|
right: 92px; /* 46px + 46px */
|
|
}
|
|
/* 最小化图标 (-) */
|
|
.layui-layer.WebUI3-skin .layui-layer-min::after {
|
|
background: none;
|
|
content: '─'; /* 简化示意 */
|
|
font-size: 14px;
|
|
line-height: 1;
|
|
}
|
|
|
|
/* Min 和 Max 的 hover 样式 */
|
|
.layui-layer.WebUI3-skin .layui-layer-min:hover,
|
|
.layui-layer.WebUI3-skin .layui-layer-max:hover {
|
|
background-color: var(--hover-bgcolor);
|
|
}
|
|
.layui-layer.WebUI3-skin .layui-layer-min:hover::after,
|
|
.layui-layer.WebUI3-skin .layui-layer-max:hover::after {
|
|
background-color: var(--text-primary);
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
/* === 保持原有样式区域 === */
|
|
|
|
/* 窗口内容区域 */
|
|
.layui-layer.WebUI3-skin .layui-layer-content {
|
|
/* padding: 20px; */
|
|
background-color: var(--surface-color);
|
|
color: var(--text-secondary);
|
|
line-height: 1.5;
|
|
}
|
|
|
|
/* 窗口按钮区域 */
|
|
.layui-layer.WebUI3-skin .layui-layer-btn {
|
|
padding: 16px 20px;
|
|
background-color: var(--background-color);
|
|
border-top: 1px solid var(--border-color);
|
|
text-align: right;
|
|
}
|
|
|
|
/* 窗口按钮样式 */
|
|
.layui-layer.WebUI3-skin .layui-layer-btn a {
|
|
height: var(--control-height);
|
|
line-height: var(--control-height);
|
|
padding: 0 16px;
|
|
border-radius: var(--border-radius);
|
|
font-size: 14px;
|
|
font-family: var(--font-family);
|
|
transition: all 0.2s;
|
|
margin-left: 8px;
|
|
}
|
|
|
|
/* 主按钮 */
|
|
.layui-layer.WebUI3-skin .layui-layer-btn .layui-layer-btn0 {
|
|
background-color: var(--primary-color);
|
|
border: 1px solid var(--primary-color);
|
|
color: #fff;
|
|
}
|
|
|
|
.layui-layer.WebUI3-skin .layui-layer-btn .layui-layer-btn0:hover {
|
|
background-color: var(--primary-hover);
|
|
border-color: var(--primary-hover);
|
|
}
|
|
|
|
.layui-layer.WebUI3-skin .layui-layer-btn .layui-layer-btn0:active {
|
|
background-color: var(--primary-pressed);
|
|
border-color: var(--primary-pressed);
|
|
}
|
|
|
|
/* 次要按钮 */
|
|
.layui-layer.WebUI3-skin .layui-layer-btn a:not(.layui-layer-btn0) {
|
|
background-color: var(--surface-color);
|
|
border: 1px solid var(--border-color);
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.layui-layer.WebUI3-skin .layui-layer-btn a:not(.layui-layer-btn0):hover {
|
|
background-color: var(--hover-bgcolor);
|
|
border-color: var(--input-hover-border-color);
|
|
}
|
|
|
|
/* 适配不同窗口类型 */
|
|
.layui-layer.WebUI3-skin.layui-layer-dialog,
|
|
.layui-layer.WebUI3-skin.layui-layer-page {
|
|
border-radius: var(--border-radius);
|
|
} |