Files
halo-theme-WarmIsland/.trae/documents/article-reading-experience-ref-optimization.md
T
2026-05-18 17:29:18 +08:00

124 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 参考页面排版优化文章详情页阅读体验
## 参考页面分析(nxxy335.top/archives/c2KWtzf4
通过浏览器截图和 JS 提取的样式数据,参考页面的排版特征如下:
| 属性 | 参考页面 | 我们当前 | 差异分析 |
|------|----------|----------|----------|
| 内容区域宽度 | 704px | 800px | 我们更宽,但参考页面更聚焦阅读 |
| 正文字号 | 16px | 17px (1.0625rem) | 我们略大 |
| 正文行高 | 27.6px (~1.725) | 1.85 | 我们行高更大 |
| h2 字号 | 24px | 未设置(继承) | 参考页面 h2 有明确字号 |
| h2 margin-top | 32px | 3em (~51px) | 我们标题上方留白过大 |
| h2 margin-bottom | 8px | 1.2em (~20px) | 参考页面标题下方更紧凑 |
| 段落间距 | 16px | 1.6em (~27px) | 我们段落间距偏大 |
| 图片圆角 | 0px(无圆角) | 12px | 参考页面图片无圆角 |
| 图片 margin-bottom | 0px | var(--space-xl) 2rem | 参考页面图片紧贴文字 |
| 字体 | 系统字体栈 | var(--font-sans) | 类似 |
### 参考页面的设计理念
- **紧凑但不拥挤**:段落间距适中(16px),标题上方留白适中(32px),整体节奏感好
- **内容宽度适中**:704px 是经典的阅读宽度,适合单栏长文阅读
- **标题层级清晰**:h2 有明确的 24px 字号,上方 32px 留白,下方仅 8px,让标题和下方正文紧密关联
- **图片融入正文**:无圆角,无额外间距,图片像段落一样自然融入文字流
- **行高适中**:1.725 的行高在中文阅读中既不拥挤也不松散
---
## 优化方案
### 1. 缩小内容区域宽度
-`.wi-content-wrap``max-width``800px` 改为 `720px`
- 这是阅读体验最核心的改进——过宽的内容行会导致视线追踪困难
### 2. 调整正文字号和行高
- 字号:保持 `1rem`16px),与参考页面一致
- 行高:从 `1.85` 调整为 `1.75`,与参考页面的 1.725 接近
### 3. 优化标题间距
- h2`margin-top: 2em`(从 3em 降低),`margin-bottom: 0.5em`(从 1.2em 降低)
- h3-h6`margin-top: 1.8em`(从 2.5em 降低),`margin-bottom: 0.5em`(从 1em 降低)
- 核心理念:标题上方留白适中,下方紧凑,让标题和正文紧密关联
### 4. 优化段落间距
-`1.6em` 调整为 `1.2em`,与参考页面的 16px(1em)接近但略宽松
### 5. 优化图片样式
- 圆角:从 `12px` 改为 `8px`(保留微圆角但不突兀)
- 间距:从 `margin-block: var(--space-xl)` 改为 `margin-block: 1.5em`
### 6. 为 h2 添加明确字号
- h2`font-size: 1.5rem`24px
- h3`font-size: 1.25rem`20px
---
## 涉及文件
1. **`src/styles/main.scss`**:修改 `.wi-content-wrap``max-width` 从 800px 到 720px
2. **`src/pages/post.astro`**:修改 `.wi-post__body` 及子元素的排版样式
---
## 具体修改
### main.scss
```css
.wi-content-wrap {
max-width: 720px; /* 从 800px 缩小到 720px */
margin: 0 auto;
padding-inline: clamp(1rem, 3vw, 2rem);
}
```
### post.astro CSS 修改
```css
.wi-post__body {
width: 100%;
max-width: 100%;
margin: 0 auto;
font-size: 1rem; /* 从 1.0625rem 改为 1rem (16px) */
line-height: 1.75; /* 从 1.85 改为 1.75 */
color: #3d3530;
overflow-wrap: break-word;
word-wrap: break-word;
}
.wi-post__body :is(h1, h2, h3, h4, h5, h6) {
font-family: var(--font-sans);
margin-top: 1.8em; /* 从 2.5em 降低 */
margin-bottom: 0.5em; /* 从 1em 降低 */
scroll-margin-top: 80px;
}
.wi-post__body h2 {
font-size: 1.5rem; /* 新增:明确 h2 字号 */
margin-top: 2em; /* 从 3em 降低 */
margin-bottom: 0.5em; /* 从 1.2em 降低 */
}
.wi-post__body h3 {
font-size: 1.25rem; /* 新增:明确 h3 字号 */
}
.wi-post__body p {
margin-block-end: 1.2em; /* 从 1.6em 降低 */
}
.wi-post__body img {
border-radius: 8px; /* 从 12px 降低 */
margin-block: 1.5em; /* 从 var(--space-xl) 改为 1.5em */
}
```
---
## 实施步骤
1. 修改 `src/styles/main.scss``.wi-content-wrap``max-width` 从 800px 改为 720px
2. 修改 `src/pages/post.astro`:调整 `.wi-post__body` 及子元素排版样式
3. 构建并部署到 Halo 容器
4. 浏览器验证效果