CLASS
CSS
# Advanced CSS and Sass - 高级 CSS 和 Sass:Flexbox、网格、动画(中英文字幕) p05 006 Building the Header - Part 1
# Advanced CSS and Sass: Building the Header - Part 2 Notes
# 21 - 一个 Token 的旅程 [2026 南京大学操作系统原理]
本站点使用 MrDoc 构建
-
+
# Advanced CSS and Sass: Building the Header - Part 2 Notes
## 目录 1. **Logo 的实现与定位** [原片 @ 00:37](https://www.bilibili.com/video/BV1n94y1o7yS_p6?t=37) 2. **主标题 (H1) 的结构与样式** [原片 @ 04:30](https://www.bilibili.com/video/BV1n94y1o7yS_p6?t=270) 3. **文字排版细节调整** [原片 @ 08:08](https://www.bilibili.com/video/BV1n94y1o7yS_p6?t=488) 4. **完美居中的技巧:Transform + Top/Left** [原片 @ 11:55](https://www.bilibili.com/video/BV1n94y1o7yS_p6?t=715) 5. **视觉微调与响应式适应性** [原片 @ 15:07](https://www.bilibili.com/video/BV1n94y1o7yS_p6?t=907) 6. **AI 总结** --- ## 1. Logo 的实现与定位 [原片 @ 00:37](https://www.bilibili.com/video/BV1n94y1o7yS_p6?t=37) ### HTML 结构 - **容器策略**:虽然图片(`<img>`)默认是内联元素(inline element),但为了更好的布局控制,建议先创建一个容器 `div`(类名为 `.logo-box`),然后将图片放入其中。 - **图片标签**: ```html <div class="logo-box"> <img src="img/logo-white.png" alt="Logo" class="logo"> </div> ``` - **Alt 属性的重要性**:必须添加 `alt` 属性。它不仅用于 SEO(搜索引擎优化),还当图片加载失败时提供文本替代描述。 ### CSS 样式 - **绝对定位 (Absolute Positioning)**: - 目标是将 Logo 放置在左上角。 - 对 `.logo-box` 使用 `position: absolute;`。 - 设置偏移量:`top: 40px; left: 40px;`。 - **相对定位 (Relative Positioning) 作为参考点**: - 绝对定位的元素相对于最近的非静态定位祖先元素进行定位。 - 因此,父元素 `.header` 需要设置为 `position: relative;`。这样,`top` 和 `left` 的测量起点就是 `.header` 的左上角。 - **尺寸控制**: - 仅设置 `height: 35px;`。 - 浏览器会自动根据原始比例计算宽度,保持图片不变形。通常建议固定高度以控制整体布局。 ## 2. 主标题 (H1) 的结构与样式 [原片 @ 04:30](https://www.bilibili.com/video/BV1n94y1o7yS_p6?t=270) ### HTML 结构 - **语义化**:使用 `<h1>` 标签作为页面最重要的标题。 - **拆分文本**:为了分别控制两行文字的样式(大小、间距),在 `<h1>` 内部使用两个 `<span>` 标签。 ```html <h1 class="heading-primary"> <span class="heading-primary--main">Outdoors</span> <span class="heading-primary--sub">is where life happens</span> </h1> ``` - 注意:不要将 "Outdoors" 设为 H1,"is where life happens" 设为 H2,因为整个短语才是页面的主要标题。 ### CSS 基础样式 - **颜色**:`color: #fff;` (白色)。 - **文本转换**:`text-transform: uppercase;` (全部大写)。 - **块级显示**: - `<span>` 默认是内联元素。为了换行,需要将它们转换为块级元素。 - 对 `.heading-primary--main` 和 `.heading-primary--sub` 设置 `display: block;`。 - 块级元素占据整行宽度并自动产生换行。 ## 3. 文字排版细节调整 [原片 @ 08:08](https://www.bilibili.com/video/BV1n94y1o7yS_p6?t=488) ### 字体样式 - **主标题 (Main)**: - `font-size: 60px;` - `font-weight: 400;` (Lato 字体的常规粗细,避免默认 H1 过粗)。 - `letter-spacing: 35px;` (增加字母间距,营造呼吸感)。 - **副标题 (Sub)**: - `font-size: 20px;` - `font-weight: 400;` - `letter-spacing: 17.4px;` (经过调试后的最终值,初始尝试 15px 感觉稍窄)。 ### 字体权重选择 - 使用的字体是 **Lato**。 - 可用的 weights 包括:100, 300, 400, 700, 900。 - 最终决定主标题和副标题都使用 `400`,以保持视觉上的平衡和轻盈感。 ## 4. 完美居中的技巧:Transform + Top/Left [原片 @ 11:55](https://www.bilibili.com/video/BV1n94y1o7yS_p6?t=715) ### 引入新容器 - 为了更好地管理居中逻辑并为后续按钮留出空间,创建一个新的容器 `div`,类名为 `.text-box`。 - 将 `<h1>` 放入 `.text-box` 中。 ### 居中算法 (核心知识点) 要实现元素的绝对水平和垂直居中,步骤如下: 1. **绝对定位**: ```css .text-box { position: absolute; } ``` 2. **移动到中心点**: 将元素的左上角移动到父元素的中心。 ```css .text-box { top: 50%; left: 50%; } ``` - 此时,`.text-box` 的**左上角**位于屏幕正中,而不是元素本身居中。 3. **反向平移 (Translate)**: 利用 `transform` 属性将元素向左和向上移动自身宽度和高度的一半。 ```css .text-box { transform: translate(-50%, -50%); } ``` - **关键点**:这里的百分比是相对于**元素自身**的尺寸,而不是父元素。 - `-50%` 表示向左移动元素宽度的一半,向上移动元素高度的一半。 ### 垂直位置的微调 - 由于 Header 底部有一个白色的斜切形状(clip-path),导致视觉重心偏下。 - 如果完全居中 (`top: 50%`),视觉上会显得偏下。 - **解决方案**:调整 `top` 的值,使其稍微靠上一点。 ```css .text-box { top: 40%; /* 原来是 50% */ left: 50%; transform: translate(-50%, -50%); } ``` - 这样调整后,文字在视觉上更贴合设计意图,且保持了响应式特性。 ## 5. 视觉微调与响应式适应性 [原片 @ 15:07](https://www.bilibili.com/video/BV1n94y1o7yS_p6?t=907) ### 最终效果确认 - **响应式测试**:调整浏览器窗口大小(改变视口高度和宽度)。 - 无论窗口如何变化,`.text-box` 始终保持在指定的相对位置(`top: 40%`, `left: 50%`),并利用 `translate` 保持自身居中。 - 这证明了该居中方法比固定像素定位更适合响应式设计。 ### 代码回顾 - **Header**: `position: relative;` - **Logo Box**: `position: absolute; top: 40px; left: 40px;` - **Text Box**: `position: absolute; top: 40%; left: 50%; transform: translate(-50%, -50%);` ## AI 总结 本节课主要讲解了如何在网页头部设计中精确定位 Logo 和主标题。关键知识点包括: 1. **绝对定位的基础**:利用父元素的 `relative` 定位作为参考点,配合子元素的 `absolute` 定位实现精确坐标放置(如 Logo 的左上角定位)。 2. **文本排版技巧**:通过 `display: block` 强制内联元素换行,并利用 `letter-spacing` 和 `font-weight` 调整视觉美感。 3. **高级居中方案**:这是本课的核心重点。传统的居中方法往往难以应对动态内容,而结合 `top/left: 50%` 与 `transform: translate(-50%, -50%)` 是实现完美垂直水平居中的最佳实践。这种方法基于百分比计算,具有天然的响应式优势,能适应不同屏幕尺寸。此外,通过微调 `top` 值(如改为 40%)可以解决视觉重心偏差的问题。
peipeo
2026年5月15日 09:53
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码