332 lines
6.5 KiB
CSS
332 lines
6.5 KiB
CSS
/* ===== 字体和行距优化 - 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);
|
||
}
|
||
*/ |