初次提交
This commit is contained in:
@@ -0,0 +1,455 @@
|
||||
/* 移动端管理界面优化样式 */
|
||||
|
||||
/* 确保打印时不受移动端样式影响 */
|
||||
@media print {
|
||||
* {
|
||||
-webkit-print-color-adjust: exact !important;
|
||||
print-color-adjust: exact !important;
|
||||
}
|
||||
|
||||
.schedule-item-print,
|
||||
.print-page,
|
||||
.schedule-content {
|
||||
width: 100% !important;
|
||||
max-width: none !important;
|
||||
box-sizing: border-box !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* 通用移动端表单优化 */
|
||||
@media screen and (max-width: 768px) {
|
||||
/* 模态框移动端优化 */
|
||||
.modal-overlay {
|
||||
padding: 0;
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
width: 100% !important;
|
||||
max-width: none !important;
|
||||
margin: 0 !important;
|
||||
border-radius: 16px 16px 0 0 !important;
|
||||
max-height: 90vh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.modal-header {
|
||||
padding: 16px 20px !important;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background: inherit;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.modal-header h3 {
|
||||
font-size: 18px !important;
|
||||
}
|
||||
|
||||
.close-btn {
|
||||
width: 36px !important;
|
||||
height: 36px !important;
|
||||
}
|
||||
|
||||
.modal-body {
|
||||
padding: 20px !important;
|
||||
}
|
||||
|
||||
.modal-footer {
|
||||
padding: 16px 20px !important;
|
||||
position: sticky;
|
||||
bottom: 0;
|
||||
background: inherit;
|
||||
border-top: 1px solid var(--border-secondary) !important;
|
||||
flex-direction: column !important;
|
||||
gap: 12px !important;
|
||||
}
|
||||
|
||||
/* 表单元素移动端优化 */
|
||||
.form-group {
|
||||
margin-bottom: 20px !important;
|
||||
}
|
||||
|
||||
.form-group label {
|
||||
font-size: 15px !important;
|
||||
margin-bottom: 8px !important;
|
||||
}
|
||||
|
||||
.form-input,
|
||||
.form-select,
|
||||
.form-textarea {
|
||||
padding: 14px 16px !important;
|
||||
font-size: 16px !important; /* 防止iOS缩放 */
|
||||
border-radius: 10px !important;
|
||||
min-height: 44px !important; /* 触摸友好的最小高度 */
|
||||
box-sizing: border-box !important;
|
||||
}
|
||||
|
||||
.form-textarea {
|
||||
min-height: 120px !important;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
.form-row {
|
||||
grid-template-columns: 1fr !important;
|
||||
gap: 20px !important;
|
||||
}
|
||||
|
||||
/* 按钮移动端优化 */
|
||||
.btn-primary,
|
||||
.btn-secondary,
|
||||
.btn-danger,
|
||||
.btn-warning {
|
||||
padding: 14px 20px !important;
|
||||
font-size: 16px !important;
|
||||
min-height: 48px !important;
|
||||
border-radius: 10px !important;
|
||||
width: 100% !important;
|
||||
box-sizing: border-box !important;
|
||||
}
|
||||
|
||||
.modal-footer .btn-primary,
|
||||
.modal-footer .btn-secondary {
|
||||
order: 1;
|
||||
}
|
||||
|
||||
.modal-footer .btn-secondary {
|
||||
order: 2;
|
||||
}
|
||||
|
||||
/* 搜索输入框优化 */
|
||||
.search-input {
|
||||
padding: 12px 16px !important;
|
||||
font-size: 16px !important;
|
||||
border-radius: 10px !important;
|
||||
min-height: 44px !important;
|
||||
}
|
||||
|
||||
/* 工具栏按钮优化 */
|
||||
.create-btn,
|
||||
.refresh-btn,
|
||||
.upload-btn {
|
||||
padding: 12px 16px !important;
|
||||
font-size: 15px !important;
|
||||
min-height: 44px !important;
|
||||
border-radius: 10px !important;
|
||||
}
|
||||
|
||||
/* 操作按钮优化 */
|
||||
.action-btn {
|
||||
width: 40px !important;
|
||||
height: 40px !important;
|
||||
border-radius: 8px !important;
|
||||
}
|
||||
|
||||
.action-btn svg {
|
||||
width: 18px !important;
|
||||
height: 18px !important;
|
||||
}
|
||||
|
||||
/* 分页按钮优化 */
|
||||
.page-btn {
|
||||
padding: 12px 16px !important;
|
||||
font-size: 15px !important;
|
||||
min-height: 44px !important;
|
||||
border-radius: 8px !important;
|
||||
}
|
||||
|
||||
/* 选择框优化 */
|
||||
.checkbox,
|
||||
.radio {
|
||||
width: 20px !important;
|
||||
height: 20px !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
/* 标签和徽章优化 */
|
||||
.role-badge,
|
||||
.status-badge,
|
||||
.permission-tag {
|
||||
padding: 6px 10px !important;
|
||||
font-size: 12px !important;
|
||||
border-radius: 6px !important;
|
||||
}
|
||||
|
||||
/* 错误消息优化 */
|
||||
.error-message {
|
||||
padding: 14px 16px !important;
|
||||
font-size: 15px !important;
|
||||
border-radius: 10px !important;
|
||||
margin-top: 12px !important;
|
||||
}
|
||||
|
||||
/* 加载状态优化 */
|
||||
.loading-overlay {
|
||||
border-radius: 12px !important;
|
||||
}
|
||||
|
||||
.spinner {
|
||||
width: 32px !important;
|
||||
height: 32px !important;
|
||||
}
|
||||
|
||||
.loading-text {
|
||||
font-size: 15px !important;
|
||||
margin-top: 12px !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* 小屏幕设备进一步优化 */
|
||||
@media screen and (max-width: 480px) {
|
||||
.modal-content {
|
||||
border-radius: 12px 12px 0 0 !important;
|
||||
}
|
||||
|
||||
.modal-header {
|
||||
padding: 12px 16px !important;
|
||||
}
|
||||
|
||||
.modal-header h3 {
|
||||
font-size: 16px !important;
|
||||
}
|
||||
|
||||
.close-btn {
|
||||
width: 32px !important;
|
||||
height: 32px !important;
|
||||
}
|
||||
|
||||
.modal-body {
|
||||
padding: 16px !important;
|
||||
}
|
||||
|
||||
.modal-footer {
|
||||
padding: 12px 16px !important;
|
||||
}
|
||||
|
||||
.form-group {
|
||||
margin-bottom: 16px !important;
|
||||
}
|
||||
|
||||
.form-group label {
|
||||
font-size: 14px !important;
|
||||
}
|
||||
|
||||
.form-input,
|
||||
.form-select,
|
||||
.form-textarea {
|
||||
padding: 12px 14px !important;
|
||||
font-size: 16px !important;
|
||||
min-height: 40px !important;
|
||||
}
|
||||
|
||||
.btn-primary,
|
||||
.btn-secondary,
|
||||
.btn-danger,
|
||||
.btn-warning {
|
||||
padding: 12px 16px !important;
|
||||
font-size: 15px !important;
|
||||
min-height: 44px !important;
|
||||
}
|
||||
|
||||
.action-btn {
|
||||
width: 36px !important;
|
||||
height: 36px !important;
|
||||
}
|
||||
|
||||
.action-btn svg {
|
||||
width: 16px !important;
|
||||
height: 16px !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* 触摸设备特殊优化 */
|
||||
@media (hover: none) and (pointer: coarse) {
|
||||
/* 增加触摸目标大小 */
|
||||
.nav-item,
|
||||
.action-btn,
|
||||
.page-btn,
|
||||
.close-btn {
|
||||
min-width: 44px !important;
|
||||
min-height: 44px !important;
|
||||
}
|
||||
|
||||
/* 移除悬停效果 */
|
||||
.nav-item:hover,
|
||||
.action-btn:hover,
|
||||
.page-btn:hover,
|
||||
.close-btn:hover {
|
||||
transform: none !important;
|
||||
}
|
||||
|
||||
/* 添加触摸反馈 */
|
||||
.nav-item:active,
|
||||
.action-btn:active,
|
||||
.page-btn:active,
|
||||
.close-btn:active {
|
||||
transform: scale(0.95);
|
||||
transition: transform 0.1s ease;
|
||||
}
|
||||
}
|
||||
|
||||
/* 横屏模式优化 */
|
||||
@media screen and (max-width: 768px) and (orientation: landscape) {
|
||||
.modal-content {
|
||||
max-height: 85vh !important;
|
||||
}
|
||||
|
||||
.modal-header {
|
||||
padding: 12px 20px !important;
|
||||
}
|
||||
|
||||
.modal-body {
|
||||
padding: 16px 20px !important;
|
||||
}
|
||||
|
||||
.modal-footer {
|
||||
padding: 12px 20px !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* 移动端专用交互优化 */
|
||||
@media screen and (max-width: 768px) {
|
||||
/* 滑动手势支持 */
|
||||
.sidebar {
|
||||
touch-action: pan-y;
|
||||
}
|
||||
|
||||
.table-container {
|
||||
overflow-x: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
.activity-list,
|
||||
.modal-body {
|
||||
-webkit-overflow-scrolling: touch;
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
/* 触摸反馈 */
|
||||
.nav-item,
|
||||
.action-btn,
|
||||
.page-btn,
|
||||
.close-btn,
|
||||
.mobile-menu-btn,
|
||||
.user-card,
|
||||
.data-card,
|
||||
.stat-card {
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
tap-highlight-color: transparent;
|
||||
}
|
||||
|
||||
/* 防止双击缩放 */
|
||||
.nav-item,
|
||||
.action-btn,
|
||||
.page-btn,
|
||||
.close-btn,
|
||||
.mobile-menu-btn {
|
||||
touch-action: manipulation;
|
||||
}
|
||||
|
||||
/* 长按菜单禁用 */
|
||||
.action-btn,
|
||||
.page-btn,
|
||||
.close-btn {
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
/* 拖拽优化 */
|
||||
.user-card,
|
||||
.data-card,
|
||||
.role-card {
|
||||
touch-action: pan-y;
|
||||
}
|
||||
|
||||
/* 输入框优化 */
|
||||
.form-input,
|
||||
.form-select,
|
||||
.form-textarea,
|
||||
.search-input {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
touch-action: manipulation;
|
||||
}
|
||||
|
||||
/* IOS特定优化 */
|
||||
.form-input[type='text'],
|
||||
.form-input[type='email'],
|
||||
.form-input[type='password'],
|
||||
.search-input {
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/* 触摸设备特殊交互 */
|
||||
@media (hover: none) and (pointer: coarse) {
|
||||
/* 卡片点击效果 */
|
||||
.user-card:active,
|
||||
.data-card:active,
|
||||
.role-card:active,
|
||||
.stat-card:active {
|
||||
transform: scale(0.98);
|
||||
transition: transform 0.1s ease;
|
||||
}
|
||||
|
||||
/* 按钮点击效果 */
|
||||
.nav-item:active,
|
||||
.action-btn:active,
|
||||
.page-btn:active,
|
||||
.close-btn:active,
|
||||
.mobile-menu-btn:active {
|
||||
transform: scale(0.95);
|
||||
transition: transform 0.1s ease;
|
||||
}
|
||||
|
||||
/* 移除悬停效果 */
|
||||
.nav-item:hover,
|
||||
.action-btn:hover,
|
||||
.page-btn:hover,
|
||||
.close-btn:hover,
|
||||
.user-card:hover,
|
||||
.data-card:hover,
|
||||
.role-card:hover,
|
||||
.stat-card:hover {
|
||||
transform: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
/* 焦点样式优化 */
|
||||
.form-input:focus,
|
||||
.form-select:focus,
|
||||
.form-textarea:focus,
|
||||
.search-input:focus {
|
||||
transform: none;
|
||||
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.2) !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* 下拉刷新支持 */
|
||||
@media screen and (max-width: 768px) {
|
||||
.overview-dashboard,
|
||||
.user-manager,
|
||||
.role-manager {
|
||||
overscroll-behavior-y: contain;
|
||||
}
|
||||
}
|
||||
|
||||
/* 安全区域适配 */
|
||||
@supports (padding: max(0px)) {
|
||||
@media screen and (max-width: 768px) {
|
||||
.mobile-header {
|
||||
padding-left: max(16px, env(safe-area-inset-left));
|
||||
padding-right: max(16px, env(safe-area-inset-right));
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
padding-left: max(0px, env(safe-area-inset-left));
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
margin-bottom: max(0px, env(safe-area-inset-bottom));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user