/* ===== 字体和行距优化 - Windows优先,兼容macOS/iOS ===== */ /* 1. 字体栈优化 - Windows优先 */ :root { /* Windows优先的字体栈 */ --font-stack-sans: "Segoe UI", "Microsoft YaHei", "Noto Sans SC", "SF Pro Text", "PingFang SC", "Helvetica Neue", "Arial", sans-serif; /* Emoji字体栈 */ --font-stack-emoji: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji"; /* 代码字体栈 */ --font-stack-mono: "Cascadia Code", "Consolas", "SF Mono", "Monaco", "Roboto Mono", "Courier New", monospace; } /* 全局字体设置 */ body { font-family: var(--font-stack-sans), var(--font-stack-emoji); font-size: 16px; /* 确保 ≥16px,避免iOS焦点放大 */ line-height: 1.6; /* 无单位行高,跨浏览器一致 */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; } /* 2. 行距优化 */ /* 聊天消息区域 */ #chatMessages, .chat-messages, .message-content, .message-bubble { line-height: 1.6; /* 无单位行高 */ font-size: 16px; font-variant-emoji: text; /* 避免emoji拉高行距 */ } /* 输入框 */ #messageInput, #chatModeMessageInput, textarea { font-family: var(--font-stack-sans), var(--font-stack-emoji); font-size: 16px !important; /* 防止iOS缩放 */ line-height: 1.5; font-variant-emoji: text; } /* 3. 统一标题、段落、列表间距 */ /* 标题间距 - 更紧凑 */ h1, h2, h3, h4, h5, h6 { margin: 0.3em 0 0.2em; line-height: 1.2; font-weight: 600; } /* 段落间距 - 更紧凑 */ p { margin: 0.3em 0; line-height: 1.5; } /* 列表间距 */ ul, ol { margin: 0.35em 0 0.5em; padding-left: 1.25em; line-height: 1.6; } /* 列表项间距 - 减小间距 */ li { margin: 0.15em 0; line-height: 1.5; } /* 列表项内的段落不需要额外间距 */ li > p { margin: 0; line-height: 1.5; } /* 强制移除所有br标签 */ .message-content br, .chat-messages br, #chatMessages br, li br { display: none !important; /* 完全隐藏所有br标签 */ } /* 嵌套列表调整 */ li > ul, li > ol { margin: 0.2em 0 0.3em; } /* 4. 聊天消息中的特定元素优化 */ /* AI和用户消息 */ .ai-message, .user-message { font-size: 16px; line-height: 1.6; } /* 消息内的标题 */ .message-content h1, .message-content h2, .message-content h3, .message-content h4, .message-content h5, .message-content h6 { margin: 0.45em 0 0.3em; line-height: 1.3; } /* 消息内的段落 */ .message-content p { margin: 0.45em 0; line-height: 1.6; } /* 消息内的列表 - 优化间距 */ .message-content ul, .message-content ol, #chatMessages ul, #chatMessages ol { margin: 0.25em 0 0.4em; padding-left: 1.25em; line-height: 1.5; } .message-content li, #chatMessages li { margin: 0.1em 0; line-height: 1.5; } .message-content li > p, #chatMessages li > p { margin: 0; display: inline; /* 让p标签内联显示,避免换行 */ } /* 强制处理列表项之间的间距 */ .message-content li + li, #chatMessages li + li { margin-top: 0.15em; } /* 列表项内的强调文字 */ .message-content li strong, #chatMessages li strong { font-weight: 600; margin-right: 0.2em; } /* 5. Safari/iOS特定修复 */ @supports (-webkit-touch-callout: none) { /* Safari特定样式 */ body { -webkit-text-size-adjust: 100%; } /* 修复Safari中的行距问题 */ p, li, div { -webkit-margin-before: 0; -webkit-margin-after: 0; -webkit-margin-start: 0; -webkit-margin-end: 0; } } /* iOS特定修复 */ @supports (-webkit-overflow-scrolling: touch) { /* 防止iOS文本缩放 */ body { -webkit-text-size-adjust: 100%; } /* 输入框最小字体16px */ input, textarea, select { font-size: 16px !important; } /* 修复iOS上的emoji显示 */ .emoji { font-variant-emoji: emoji; line-height: 1; } } /* 6. 代码块样式 */ pre, code { font-family: var(--font-stack-mono); font-size: 14px; line-height: 1.4; } /* 行内代码 */ code { padding: 0.1em 0.3em; margin: 0 0.1em; } /* 代码块 */ pre { margin: 0.5em 0; padding: 1em; overflow-x: auto; } pre code { padding: 0; margin: 0; } /* 7. 中文优化 */ :lang(zh), :lang(zh-CN), :lang(zh-TW), :lang(zh-HK) { font-family: "Segoe UI", "Microsoft YaHei", "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Helvetica Neue", "Arial", sans-serif; line-height: 1.7; /* 中文稍微增加行高 */ } /* 8. 按钮和UI元素 */ button, .button, .btn { font-family: var(--font-stack-sans); font-size: 14px; line-height: 1.4; } /* 9. 响应式字体大小 */ @media (max-width: 768px) { body { font-size: 15px; /* 移动端稍小但仍≥15px */ } #chatMessages, .message-content { font-size: 15px; } } /* 10. 消除多余的间距 */ /* 第一个和最后一个元素不需要额外间距 */ .message-content > *:first-child, #chatMessages > *:first-child { margin-top: 0; } .message-content > *:last-child, #chatMessages > *:last-child { margin-bottom: 0; } /* 处理Markdown渲染可能产生的多余空白 */ .message-content p:empty, #chatMessages p:empty { display: none; /* 隐藏空段落 */ } /* br标签已在前面全部隐藏,这里不需要了 */ /* 连续段落间距优化 */ p + p { margin-top: 0.3em; } /* 标题后的段落间距 */ h1 + p, h2 + p, h3 + p, h4 + p, h5 + p, h6 + p { margin-top: 0.3em; } /* 11. 引用块样式 */ blockquote { margin: 0.5em 0; padding-left: 1em; border-left: 3px solid #ddd; } blockquote p { margin: 0.3em 0; } /* 12. 表格样式 */ table { margin: 0.5em 0; line-height: 1.5; } th, td { padding: 0.4em 0.8em; } /* 13. 确保emoji不影响行高 */ .emoji, [data-emoji] { font-variant-emoji: text; display: inline-block; vertical-align: middle; line-height: 1; } /* 14. 紧凑模式 - 进一步减小间距 */ .message-content.compact, #chatMessages.compact { line-height: 1.4; } .message-content.compact li, #chatMessages.compact li { margin: 0.05em 0; } /* 15. 强制覆盖可能的默认样式 */ #chatMessages * { margin-block-start: initial; margin-block-end: initial; } /* 16. 调试用 - 可临时启用查看间距 */ /* * { outline: 1px solid rgba(255, 0, 0, 0.1); } */