目录
-
第一章:基础入门
(图片来源网络,侵删)- 1 你好,世界!——第一个HTML页面
- 2 网页的骨架——HTML基本结构
- 3 美化你的网页——CSS初体验
- 4 经典案例一:个人简历页面
-
第二章:CSS核心布局
- 1 盒子模型——理解CSS布局基石
- 2 浮动与清除——经典多列布局
- 3 定位——元素的精确定位
- 4 经典案例二:企业官网首页布局
-
第三章:现代布局与响应式设计
- 1 Flexbox(弹性盒模型)——一维布局神器
- 2 Grid(网格布局)——二维布局王者
- 3 媒体查询——实现响应式设计
- 4 经典案例三:响应式作品集网站
-
第四章:进阶与美化
- 1 变换与过渡——让网页动起来
- 2 列表与导航栏美化
- 3 表单美化
- 4 经典案例四:带动画效果的登录页面
-
第五章:综合实战
(图片来源网络,侵删)- 1 项目:模仿一个知名网站(如:知乎、豆瓣)
- 2 开发流程与最佳实践
第一章:基础入门
1 你好,世界!——第一个HTML页面
这是所有编程语言的传统第一步,让我们创建一个最简单的网页。
目标: 在浏览器中显示 "Hello, World!"。
代码 (index.html):
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">我的第一个网页</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>欢迎来到网页开发的世界。</p>
</body>
</html>
如何运行:

- 将上述代码复制到一个文本编辑器中(如 VS Code, Sublime Text, 或记事本)。
- 保存文件,并将其后缀名改为
.html(index.html)。 - 用任何浏览器(如 Chrome, Firefox)打开这个文件。
讲解:
<!DOCTYPE html>:声明文档类型,告诉浏览器这是一个HTML5文档。<html>:根元素,包裹整个页面的内容。<head>:头部,包含页面的元数据(如标题、字符编码、引入的CSS/JS文件等),不会直接显示在页面上。<title>,会显示在浏览器标签页上。<body>:主体,包含所有在浏览器窗口中可见的内容。<h1>,最重要的标题。<p>:段落标签。
3 美化你的网页——CSS初体验
HTML负责结构,CSS负责样式,让我们给上面的页面加上颜色和字体。
目标: 将标题变成红色,段落文字居中。
代码 (index.html):
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">我的第一个网页</title>
<!-- 在这里引入CSS -->
<style>
/* 这是CSS注释 */
h1 {
color: red; /* 文字颜色 */
}
p {
text-align: center; /* 文本居中 */
font-family: "Microsoft YaHei", sans-serif; /* 字体 */
}
</style>
</head>
<body>
<h1>Hello, World!</h1>
<p>欢迎来到网页开发的世界。</p>
</body>
</html>
讲解:
<style>标签:在<head>内部使用,用于编写CSS代码。- CSS选择器:
h1和p就是选择器,告诉浏览器要给哪个标签添加样式。 - CSS声明块:花括号 内部的代码是声明块。
- CSS属性:
color,text-align,font-family都是属性。 - CSS值:
red,center,"Microsoft YaHei"等是属性的值。
4 经典案例一:个人简历页面
目标: 创建一个包含个人信息、教育背景、技能和项目经验的简历页面。
HTML结构 (resume.html):
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">张三的个人简历</title>
<style>
/* 1. 全局样式 */
body {
font-family: Arial, sans-serif;
line-height: 1.6;
margin: 0;
background-color: #f4f4f4;
color: #333;
}
.container {
width: 80%;
margin: 20px auto;
background-color: #fff;
padding: 20px;
border: 1px solid #ddd;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
h1, h2 {
color: #0056b3;
}
/* 2. 头部样式 */
header {
text-align: center;
border-bottom: 1px solid #eee;
padding-bottom: 10px;
margin-bottom: 20px;
}
/* 3. 内容区域样式 */
section {
margin-bottom: 20px;
}
/* 4. 列表样式 */
ul {
list-style-type: square; /* 将默认圆点改为方块 */
}
/* 5. 链接样式 */
a {
color: #007bff;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<div class="container">
<header>
<h1>张三</h1>
<p>前端开发工程师 | 电话: 138-xxxx-xxxx | 邮箱: zhangsan@email.com</p>
</header>
<section id="about">
<h2>个人简介</h2>
<p>我是一名充满热情的前端开发工程师,拥有3年的Web开发经验,我热爱学习新技术,致力于创建用户友好、性能卓越的Web应用。</p>
</section>
<section id="skills">
<h2>技能</h2>
<ul>
<li>HTML5, CSS3, JavaScript (ES6+)</li>
<li>熟练使用Flexbox和Grid进行布局</li>
<li>熟悉Vue.js/React框架</li>
<li>了解Webpack等构建工具</li>
</ul>
</section>
<section id="experience">
<h2>工作经历</h2>
<h3>ABC科技有限公司 - 前端开发工程师 (2025 - 至今)</h3>
<p>负责公司官网和内部管理系统的前端开发与维护,优化了页面加载速度,提升了用户体验。</p>
</section>
</div>
</body>
</html>
这个案例学到了什么?
- 语义化标签:
<header>,<section>,让HTML结构更清晰。 - 类选择器:
.container,通过class属性来精确地给特定元素添加样式。 - ID选择器:
#about,通过id属性来唯一标识一个元素,通常用于锚点链接。 - 后代选择器:
header h1,选择header内部的所有h1- 伪类选择器:
a:hover,当鼠标悬停在链接上时应用的样式。 - 伪类选择器:
第二章:CSS核心布局
1 盒子模型
理解盒子模型是CSS布局的核心,每个HTML元素都可以看作一个盒子,它包含:
- Content (内容):文本、图片等。
- Padding (内边距)与边框之间的空间。
- Border (边框):盒子边缘的线。
- Margin (外边距):盒子与其他盒子之间的空间。
实例:
.box {
width: 200px;
height: 200px;
padding: 20px;
border: 5px solid black;
margin: 10px;
background-color: lightblue;
}
这个盒子的总宽度 = width (200) + padding (202) + border (52) = 250px。
2 浮动与清除
浮动是早期实现多列布局的主要方式。
目标: 创建一个两列布局。
HTML:
<div class="container">
<div class="sidebar">侧边栏</div>
<div class="main-content">主要内容区域</div>
</div>
CSS:
.container {
width: 100%;
}
.sidebar {
width: 25%;
float: left;
background-color: #f0f0f0;
padding: 10px;
}
.main-content {
width: 75%;
float: left;
background-color: #e0e0e0;
padding: 10px;
}
/* 清除浮动,防止父容器高度塌陷 */
.container::after {
content: "";
display: block;
clear: both;
}
讲解:
float: left;:让元素向左浮动,脱离正常的文档流,允许其他元素(如文字、其他浮动元素)环绕它。clear: both;:清除左右两侧的浮动,防止元素被浮动元素影响。
4 经典案例二:企业官网首页布局
这个案例将综合运用盒子模型、浮动和定位,创建一个包含头部、导航、主内容区、侧边栏和底部的经典网站布局。
HTML结构 (company.html):
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">某某科技有限公司</title>
<style>
/* 重置默认样式 */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: "Microsoft YaHei", sans-serif; }
.wrapper {
width: 1000px;
margin: 0 auto;
background-color: #fff;
}
/* 头部 */
header {
background-color: #333;
color: white;
text-align: center;
padding: 20px;
}
/* 导航 */
nav {
background-color: #444;
overflow: hidden; /* 清除浮动 */
}
nav a {
float: left;
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
nav a:hover { background-color: #555; }
/* 主内容区 */
.main-content {
padding: 20px;
overflow: hidden; /* 清除浮动 */
}
.article {
float: left;
width: 70%;
padding: 20px;
background-color: #f9f9f9;
}
/* 侧边栏 */
.aside {
float: right;
width: 25%;
padding: 20px;
background-color: #e9e9e9;
}
/* 底部 */
footer {
background-color: #333;
color: white;
text-align: center;
padding: 10px;
margin-top: 20px;
}
</style>
</head>
<body>
<div class="wrapper">
<header>
<h1>某某科技有限公司</h1>
</header>
<nav>
<a href="#">首页</a>
<a href="#">关于我们</a>
<a href="#">产品服务</a>
<a href="#">联系我们</a>
</nav>
<div class="main-content">
<div class="article">
<h2>公司新闻</h2>
<p>这里是公司的最新动态和新闻资讯...</p>
</div>
<aside class="aside">
<h3>快速链接</h3>
<ul>
<li><a href="#">加入我们</a></li>
<li><a href="#">常见问题</a></li>
<li><a href="#">合作伙伴</a></li>
</ul>
</aside>
</div>
<footer>
<p>© 2025 某某科技有限公司 版权所有</p>
</footer>
</div>
</body>
</html>
这个案例学到了什么?
- CSS Reset:
* { margin: 0; padding: 0; },清除浏览器默认的内外边距。 box-sizing: border-box;:让width和height属性包含padding和border,使布局计算更直观。margin: 0 auto;:实现水平居中。overflow: hidden;:作为清除浮动的常用技巧之一。- 整体布局思路:从外到内,从上到下,逐层构建。
第三章:现代布局与响应式设计
1 Flexbox(弹性盒模型)
Flexbox 是一维布局模型,非常适合在容器中对齐和分布空间。
目标: 创建一个水平居中、垂直居中的导航栏。
CSS:
.nav-container {
display: flex; /* 启用Flexbox */
justify-content: center; /* 主轴(水平)居中 */
align-items: center; /* 交叉轴(垂直)居中 */
background-color: #333;
height: 60px; /* 需要容器有明确的高度 */
}
.nav-container a {
color: white;
padding: 10px 20px;
text-decoration: none;
margin: 0 10px; /* 项目之间的间距 */
}
2 Grid(网格布局)
Grid 是二维布局模型,可以同时控制行和列,非常适合复杂的页面布局。
目标: 创建一个经典的“圣杯布局”(Header, Main, Sidebar, Footer)。
CSS:
.grid-container {
display: grid;
/* 定义三列:侧边栏200px,内容区自适应,主内容区1fr */
grid-template-columns: 200px 1fr;
grid-template-rows: 60px 1fr 50px; /* 定义三行 */
height: 100vh; /* 视口高度 */
}
.header { grid-column: 1 / -1; /* 从第1列跨越到最后一列 */ }
.sidebar { grid-column: 1; grid-row: 2; }
.main { grid-column: 2; grid-row: 2; }
.footer { grid-column: 1 / -1; grid-row: 3; }
3 媒体查询
媒体查询是实现响应式设计的关键,它允许你根据设备的特性(如屏幕宽度)应用不同的CSS样式。
目标: 在小屏幕上,将侧边栏移到主内容区下方。
CSS:
/* 默认样式:PC端 */
.container {
display: flex;
}
.sidebar {
width: 25%;
}
.main {
width: 75%;
}
/* 当屏幕宽度小于等于768px时(平板或手机) */
@media (max-width: 768px) {
.container {
flex-direction: column; /* 改为纵向排列 */
}
.sidebar, .main {
width: 100%; /* 宽度占满 */
}
}
4 经典案例三:响应式作品集网站
这个案例将使用Flexbox和Grid构建一个在不同设备上都能良好展示的作品集。
HTML (portfolio.html):
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">我的作品集</title>
<style>
/* 基础样式 */
* { box-sizing: border-box; }
body { font-family: sans-serif; margin: 0; }
.portfolio-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 20px;
padding: 20px;
}
.portfolio-item {
border: 1px solid #ccc;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
transition: transform 0.3s ease;
}
.portfolio-item:hover {
transform: translateY(-10px);
}
.portfolio-item img {
width: 100%;
height: 200px;
object-fit: cover;
}
.portfolio-content {
padding: 15px;
}
/* 响应式调整 */
@media (max-width: 768px) {
.portfolio-container {
grid-template-columns: 1fr; /* 在小屏幕上单列显示 */
}
}
</style>
</head>
<body>
<div class="portfolio-container">
<div class="portfolio-item">
<img src="https://via.placeholder.com/400x200" alt="项目1">
<div class="portfolio-content">
<h3>电商网站重设计</h3>
<p>这是一个为某品牌电商网站进行的UI/UX重设计项目,旨在提升用户购物体验。</p>
</div>
</div>
<div class="portfolio-item">
<img src="https://via.placeholder.com/400x200" alt="项目2">
<div class="portfolio-content">
<h3>移动端App设计</h3>
<p>一款帮助用户记录日常饮食和运动习惯的健康类App设计。</p>
</div>
</div>
<div class="portfolio-item">
<img src="https://via.placeholder.com/400x200" alt="项目3">
<div class="portfolio-content">
<h3>企业品牌视觉识别</h3>
<p>为一家初创科技公司设计的全套品牌视觉识别系统,包括Logo、VI手册等。</p>
</div>
</div>
</div>
</body>
</html>
这个案例学到了什么?
viewportmeta标签:确保在移动设备上正确缩放。display: grid和grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));:这是创建响应式网格的“圣杯”组合,它会自动根据容器宽度调整列数。object-fit: cover;:让图片在保持宽高比的同时填充整个容器,防止变形。transition和hover:添加简单的悬停动画效果,提升交互体验。
第四章:进阶与美化
1 变换与过渡
让元素动起来,增加页面的活力。
transition:定义属性变化的过渡效果。.box { width: 100px; height: 100px; background-color: blue; transition: width 0.5s, transform 0.5s; /* 宽度和变换属性在0.5秒内过渡 */ } .box:hover { width: 200px; transform: rotate(45deg); /* 旋转45度 */ }transform:对元素进行2D或3D变换,如平移、旋转、缩放。
4 经典案例四:带动画效果的登录页面
这个案例将使用CSS动画和过渡来创建一个现代感十足的登录界面。
HTML (login.html):
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">登录页面</title>
<style>
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background: linear-gradient(135deg, #6a11cb 0%, #2575fc 100%);
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
.login-container {
background-color: white;
padding: 40px;
border-radius: 10px;
box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
width: 400px;
text-align: center;
animation: slideIn 0.5s ease-out;
}
@keyframes slideIn {
from {
opacity: 0;
transform: translateY(-30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.login-container h2 {
color: #333;
margin-bottom: 20px;
}
.input-group {
margin-bottom: 20px;
text-align: left;
}
.input-group label {
display: block;
margin-bottom: 5px;
color: #555;
}
.input-group input {
width: 100%;
padding: 12px;
border: 1px solid #ddd;
border-radius: 5px;
box-sizing: border-box;
transition: border-color 0.3s;
}
.input-group input:focus {
border-color: #2575fc;
outline: none;
}
button {
width: 100%;
padding: 12px;
background-color: #2575fc;
color: white;
border: none;
border-radius: 5px;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s;
}
button:hover {
background-color: #1a5bb8;
}
</style>
</head>
<body>
<div class="login-container">
<h2>欢迎登录</h2>
<form action="#">
<div class="input-group">
<label for="username">用户名</label>
<input type="text" id="username" name="username" required>
</div>
<div class="input-group">
<label for="password">密码</label>
<input type="password" id="password" name="password" required>
</div>
<button type="submit">登录</button>
</form>
</div>
</body>
</html>
这个案例学到了什么?
linear-gradient:创建背景渐变效果。display: flex:实现完美居中。@keyframes和animation:定义和调用关键帧动画,实现页面加载时的滑入效果。focus伪类:提升表单的可用性,当用户点击输入框时给出视觉反馈。border-radius:创建圆角,让设计更柔和。
第五章:综合实战
1 项目:模仿一个知名网站
这是检验学习成果的最佳方式,选择一个你喜欢的网站,如知乎、豆瓣、Apple官网等,尝试用你学到的知识去模仿它的首页布局。
开发流程:
- 分析:打开目标网站,使用浏览器开发者工具(F12)分析其布局结构,它使用了什么布局方式(Flexbox, Grid, 还是浮动)?颜色方案是什么?字体是什么?
- 拆解:将页面拆分成几个主要部分(Header, Navigation, Hero Section, Feature List, Footer等)。
- 搭建HTML骨架:根据拆解结果,写出对应的HTML结构,优先使用语义化标签。
- 编写CSS样式:从上到下,逐个部分进行样式设计。
- 先写全局样式(颜色、字体、
box-sizing)。 - 再写每个独立组件的样式。
- 最后处理响应式布局。
- 先写全局样式(颜色、字体、
- 调试与优化:在不同设备上测试,修复布局错乱问题,优化动画和交互。
2 开发流程与最佳实践
- 移动优先:先为小屏幕设备设计,再逐步增强,为大屏幕添加更多内容。
- 模块化思维:将页面拆分成可复用的组件(如按钮、卡片、导航栏),用CSS类来管理它们。
- 使用CSS预处理器:如Sass或Less,可以让你使用变量、嵌套、混合等高级功能,让CSS更易于维护。
- 代码整洁:保持良好的代码缩进和注释习惯。
- 善用开发者工具:Chrome DevTools是你的好朋友,用它来检查元素、调试样式、测试响应式布局。
总结与资源
这份教程涵盖了从基础到进阶的HTML与CSS核心知识点,并通过5个经典案例串联起来,真正的学习来自于大量的实践,请务必亲手敲下每一个案例的代码,并尝试进行修改和创新。
推荐学习资源:
- MDN Web Docs (Mozilla Developer Network):https://developer.mozilla.org/zh-CN/
- 最权威、最全面的Web技术文档,遇到任何问题,首先来这里查找。
- W3Schools:https://www.w3schools.com/
非常适合初学者,有大量的在线实例可以即时运行和修改。
- CSS-Tricks:https://css-tricks.com/
深入的CSS教程、技巧和最佳实践。
- CodePen / JSFiddle / JSBin:https://codepen.io/
在线代码编辑器,非常适合用来做小实验和分享代码。
祝你在前端开发的道路上越走越远!
