这不仅仅是学习HTML标签,而是要学习一个微型前端项目的开发流程,我们的学习路径将分为四个2小时模块,循序渐进。

学习总览:我们的目标
在8小时后,你将能够独立搭建一个静态的、163邮箱风格的网页,它将包含:
- 顶部导航栏:Logo、搜索框、登录/注册入口。
- 左侧边栏:写信、收件箱、草稿箱等功能菜单。
- 邮件列表:展示邮件发件人、主题、时间等信息。
- 区:显示选中邮件的详细内容。
- 响应式设计:在不同屏幕尺寸下能良好显示。
核心工具: 我们只需要一个文本编辑器(如 VS Code, Sublime Text, 甚至记事本)和一个浏览器(Chrome, Firefox, Edge)。
基础入门 (2小时) - 搭建骨架与内容
目标: 理解HTML基本结构,写出网页的“肉”,并添加163风格的文字内容。
核心概念:

- HTML (HyperText Markup Language):网页的骨架,定义内容和结构。
- 如
<html>,<head>,<body>,<div>,<span>,<h1>,<p>,<a>,<img>。 - 属性:如
id,class,href,src。 - 元素:标签和内容的组合。
学习步骤:
-
创建你的第一个HTML文件 (15分钟)
- 在你的电脑上新建一个文件夹,命名为
email-163。 - 在文件夹里新建一个文件,命名为
index.html。 - 用VS Code打开这个文件,输入以下基础结构并保存:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>网易邮箱</title> </head> <body> <!-- 这里是网页的所有内容 --> <h1>欢迎来到网易邮箱</h1> <p>这是我们的第一个网页。</p> </body> </html> - 用浏览器打开
index.html文件,你应该能看到一个简单的标题和段落。
- 在你的电脑上新建一个文件夹,命名为
-
构建页面结构 (45分钟)
-
我们将使用
<div>标签来划分页面的主要区域。<div>是一个“块级容器”,非常适合用来布局。
(图片来源网络,侵删) -
在
<body>标签内,按照163邮箱的布局,添加以下结构:<body> <!-- 顶部导航栏 --> <div id="top-nav"> <!-- Logo和用户信息将放在这里 --> </div> <!-- 主体内容区 --> <div id="main-container"> <!-- 左侧边栏 --> <div id="sidebar"> <!-- 写信、收件箱等菜单 --> </div> <!-- 邮件列表区 --> <div id="email-list"> <!-- 邮件列表 --> </div> <!-- 邮件内容区 --> <div id="email-content"> <!-- 邮件详情 --> </div> </div> </body> -
理解
id:id是一个元素的唯一标识符,就像你的身份证号,我们用它来精确地找到某个部分。
-
-
(60分钟)
- 现在我们往这些“空盒子”里放内容,使用
<h1>,<p>,<a>,<img>等标签。 <a>:用于创建链接,href属性指定链接地址。<img>:用于插入图片,src属性指定图片路径。- 任务:为每个
div添加占位内容。- 在
#top-nav里放一个Logo(可以用一个文字“网易邮箱”代替)和一个“登录”链接。 - 在
#sidebar里放“写信”、“收件箱”、“已发送”等链接。 - 在
#email-list里用<ul>和<li>标签列出几封假邮件。 - 在
#email-content里放一段示例邮件内容。
- 在
- 现在我们往这些“空盒子”里放内容,使用
【模块一任务完成标志】
你的 index.html 文件现在应该有清晰的层级结构,并且能在浏览器中显示出所有占位内容,虽然样式还很丑,但“骨架”已经搭好了。
美化样式 (2小时) - 穿上“衣服”
目标: 学习CSS,让我们的网页变得美观、整洁,具有163邮箱的基本样式。
核心概念:
- CSS (Cascading Style Sheets):网页的“衣服”,负责样式和布局。
- 选择器:用来选择HTML元素并为其添加样式,如
#id,.class,element。 - 盒模型:理解
margin(外边距),border(边框),padding(内边距),content(内容)。 - 布局模式:使用
display: flex来实现灵活的布局。
学习步骤:
-
引入CSS (10分钟)
- 在
email-163文件夹中,新建一个文件style.css。 - 在
index.html的<head>标签内,添加以下代码来链接CSS文件:<link rel="stylesheet" href="style.css">
- 在
-
重置默认样式 (10分钟)
- 浏览器对标签有默认样式,为了统一,我们通常会先重置它们,在
style.css文件开头添加:* { margin: 0; padding: 0; box-sizing: border-box; /* 让盒模型计算更直观 */ } body { font-family: "Microsoft YaHei", "微软雅黑", sans-serif; /* 设置字体 */ background-color: #f5f5f5; } a { text-decoration: none; /* 去掉链接下划线 */ color: #333; }
- 浏览器对标签有默认样式,为了统一,我们通常会先重置它们,在
-
布局与美化 (90分钟)
- 顶部导航栏:使用
flex布局让Logo和登录按钮分列两侧。#top-nav { background-color: #fff; padding: 10px 20px; display: flex; justify-content: space-between; /* 两端对齐 */ align-items: center; /* 垂直居中 */ box-shadow: 0 2px 4px rgba(0,0,0,0.1); } #top-nav h1 { font-size: 24px; color: #c81623; /* 163的红色 */ } - 主体容器:设置一个固定宽度并居中。
#main-container { width: 1200px; margin: 20px auto; display: flex; /* 子元素变为flex布局 */ background-color: #fff; height: 600px; } - 左侧边栏:设置固定宽度,背景色,让链接列表垂直排列。
#sidebar { width: 200px; background-color: #f8f8f8; padding: 20px 0; } #sidebar a { display: block; /* 让链接变成块级元素,可以设置宽高 */ padding: 10px 20px; } #sidebar a:hover { /* 鼠标悬停效果 */ background-color: #e6e6e6; } - 邮件列表和内容区:同样使用
flex填充剩余空间。#email-list { flex: 1; /* 占据剩余空间 */ border-right: 1px solid #eee; } #email-content { flex: 2; /* 占据剩余空间的两倍 */ padding: 20px; }
- 顶部导航栏:使用
【模块二任务完成标志】 你的网页现在看起来应该像一个正经的网页了!有清晰的区域划分、合适的颜色、字体和间距,刷新浏览器查看效果,并根据需要微调CSS。
交互与动态效果 (2小时) - 赋予“生命”
目标: 学习JavaScript,实现点击邮件列表项,在内容区显示对应邮件的交互效果。
核心概念:
- JavaScript (JS):网页的“行为”,负责交互和动态更新。
- DOM (Document Object Model):将HTML文档视为一个树状结构,JS可以操作这个树。
- 事件监听:如
click(点击),mouseover(鼠标悬停)。 - 选择元素:
document.getElementById(),document.querySelector()。
学习步骤:
-
引入JavaScript (5分钟)
- 在
email-163文件夹中,新建一个文件script.js。 - 在
index.html的</body>标签前,添加以下代码:<script src="script.js"></script>
- 在
-
准备数据 (15分钟)
- 为了让JS能操作,我们需要给HTML元素加上“钩子”,最好的方式是使用
data-属性。 - 修改
#email-list里的<li>元素,<ul id="email-list"> <li data-id="1"> <strong>张三</strong> <p>关于项目进度的更新</p> <small>10:30</small> </li> <li data-id="2"> <strong>李四</strong> <p>会议邀请:下午3点</p> <small>昨天</small> </li> <!-- ... 更多邮件 ... --> </ul> - 在
#email-content区域,我们准备几个隐藏的邮件内容块,每个也用data-id标识。<div id="email-content"> <div class="email-detail" data-id="1"> <h2>关于项目进度的更新</h2> <p>发件人: <strong>zhangsan@example.com</strong></p> <p>时间: 2025-10-27 10:30</p> <hr> <p>你好,</p> <p>我想向你汇报一下最新的项目进展,目前第一阶段的开发已经完成了80%,预计本周五可以全部完成。</p> <p>祝好,<br>张三</p> </div> <div class="email-detail" data-id="2"> <!-- 邮件2的内容 --> </div> </div>
- 为了让JS能操作,我们需要给HTML元素加上“钩子”,最好的方式是使用
-
编写交互逻辑 (100分钟)
-
在
script.js中,我们将实现点击切换的功能。 -
获取元素:首先用JS获取所有需要的元素。
-
添加事件监听:遍历所有邮件列表项,为每个项添加
click事件。 -
执行操作:当点击发生时,根据点击项的
data-id,找到对应ID的邮件内容,并将其显示出来,同时隐藏其他内容。 -
代码示例:
document.addEventListener('DOMContentLoaded', () => { // 1. 获取所有需要的元素 const emailItems = document.querySelectorAll('#email-list li'); const emailDetails = document.querySelectorAll('.email-detail'); // 2. 遍历邮件列表项,并添加点击事件 emailItems.forEach(item => { item.addEventListener('click', () => { const clickedId = item.getAttribute('data-id'); // 3. 遍历所有邮件详情 emailDetails.forEach(detail => { const detailId = detail.getAttribute('data-id'); // 如果详情ID和点击的ID匹配,就显示,否则隐藏 if (detailId === clickedId) { detail.style.display = 'block'; } else { detail.style.display = 'none'; } }); }); }); });
-
【模块三任务完成标志】 当你点击左侧的邮件列表时,右侧的内容区会动态切换显示对应的邮件内容,你的网页“活”起来了!
优化与响应式 (2小时) - 变得更专业
目标: 学习如何让网页在不同设备上都能良好显示(响应式),并优化一些细节。
核心概念:
- 媒体查询:
@media规则,允许你根据设备特性(如屏幕宽度)应用不同的CSS样式。 - 单位:
px(像素), (百分比),rem(相对根元素),vw/vh(视口单位)。 - 用户体验:加载状态、过渡效果等。
学习步骤:
-
实现响应式布局 (60分钟)
-
在
style.css文件末尾,添加媒体查询,我们设定一个断点,比如当屏幕宽度小于768px时,改变布局。 -
思路:在小屏幕上,将侧边栏隐藏,邮件列表和内容区可能变成上下结构或全屏显示。
-
代码示例:
/* 默认样式是PC端的大屏布局 */ /* 当屏幕宽度小于等于768px时 */ @media (max-width: 768px) { #main-container { width: 100%; /* 宽度占满屏幕 */ flex-direction: column; /* 子元素垂直排列 */ height: auto; /* 高度自适应 */ } #sidebar { width: 100%; display: none; /* 默认隐藏侧边栏 */ /* 可以加一个按钮来显示/隐藏侧边栏 */ } #email-list, #email-content { border: none; width: 100%; } }
-
-
添加过渡效果 (30分钟)
- CSS过渡可以让状态变化更平滑,给链接或可点击元素添加一个简单的放大效果。
- 在
style.css中添加:#sidebar a, #email-list li { transition: background-color 0.3s ease, transform 0.2s ease; } #sidebar a:hover { transform: translateX(5px); /* 鼠标悬停时向右移动一点 */ }
-
代码整理与思考 (30分钟)
- 回顾你的代码,检查是否有可以优化的地方。
- 思考一下:如果邮件数据不是写死的,而是从服务器获取的,你的JS代码需要做什么改动?(这就是下一步学习AJAX/Fetch的方向)。
- 思考一下:如果想让页面更动态,比如用JS动态创建邮件列表,而不是写死在HTML里,该怎么做?
【模块四任务完成标志】 你的163邮箱风格网页现在具备了响应式能力,可以在手机和平板上查看,并且交互体验更加流畅,恭喜你,你已经完成了8小时的挑战!
总结与下一步
恭喜你!在这8个小时里,你从零开始,掌握了一个完整静态网页的开发流程,包括 HTML (结构)、CSS (样式) 和 JavaScript (交互)。
你已经学会了:
- 项目的文件结构。
- HTML的语义化标签和布局。
- CSS的盒模型、Flex布局和媒体查询。
- JavaScript的基础DOM操作和事件处理。
下一步可以探索的方向:
- 深入学习CSS:Grid布局、动画、CSS变量。
- 深入学习JavaScript:ES6+语法、异步编程(Promise, Async/Await)。
- 前端框架:学习 React 或 Vue,它们能让开发大型应用更高效。
- 后端与数据库:学习 Node.js, Python 或 PHP,让你的网页能和服务器交互,实现真正的邮箱功能。
这是一个激动人心的开始,保持热情,继续探索吧!
