* { box-sizing: border-box; } html, body { margin: 0; padding: 0; font-family: 'PingFang SC', 'Microsoft YaHei', Arial, sans-serif; background: #f3f4f6; } .web-app { display: flex; min-height: 100vh; } /* 业务布局外壳:顶部导航 + 主体(侧边栏 + 内容区) */ .app-shell { display: grid; grid-template-rows: 56px 1fr; width: 100%; height: 100vh; overflow: hidden; } .app-body { display: grid; grid-template-columns: 208px 1fr; min-height: 0; overflow: hidden; } .app-body.no-sidebar { grid-template-columns: 0 1fr; } .app-body.no-sidebar > .sidebar { display: none; } .layout-app .content { flex: 1; min-width: 0; overflow-y: auto; background: #f2f5fa; padding: 18px 24px 32px; } /* blank 布局(登录页):避免作为 flex item 收缩到内容宽度, 否则页面只占视口一部分、右侧露出背景空白 */ .layout-blank { display: block; width: 100%; } .demo-table { width: 100%; border-collapse: collapse; margin-top: 12px; } .demo-table th, .demo-table td { border: 1px solid #e5e7eb; padding: 10px 12px; text-align: left; } .demo-table th { background: #f9fafb; } .demo-table .ok { color: #15803d; }