HTML5 & CSS3 网站设计全教程

这份教程将分为四个主要部分:

html5css3网站设计教程
(图片来源网络,侵删)
  1. 第一部分:基础入门 - 了解 Web 是什么,以及 HTML 和 CSS 的角色。
  2. 第二部分:HTML5 深度解析 - 学习网页的“骨架”和“内容”。
  3. 第三部分:CSS3 精髓 - 学习如何为网页“穿上漂亮的衣服”。
  4. 第四部分:实战项目 - 将所学知识整合,动手创建一个完整的响应式网站。

第一部分:基础入门

1 什么是 Web?Web、HTML、CSS 的关系

想象一下建造一栋房子:

  • Web (万维网):是整个城市和社区。
  • HTML (超文本标记语言):是房子的结构,它定义了哪里是墙壁、哪里是门、哪里是窗户,在网页中,它定义了哪里是标题、哪里是段落、哪里是图片。
  • CSS (层叠样式表):是房子的装修和设计,它定义了墙壁的颜色、家具的样式、窗帘的材质,在网页中,它定义了文字的颜色、字体、元素的布局、边距等。

核心关系:HTML 负责内容(What),CSS 负责表现(How),两者缺一不可,共同构成了我们看到的网页。

2 开发环境准备

你只需要一个文本编辑器和一个浏览器

  • 文本编辑器 (强烈推荐)
    • Visual Studio Code (VS Code):功能强大,免费,是目前最受欢迎的编辑器,强烈推荐安装以下插件:
      • Live Server:可以实时预览你的代码修改。
      • Prettier:自动格式化代码,保持整洁。
    • Sublime Text / Atom:也是优秀的轻量级编辑器。
  • 浏览器
    • Google Chrome:开发者工具非常强大,是前端开发的首选。

3 你的第一个网页

  1. 在你的电脑上创建一个文件夹,命名为 my-first-website
  2. 用 VS Code 打开这个文件夹。
  3. 在文件夹中创建一个新文件,命名为 index.html
  4. 将以下代码复制并粘贴到 index.html 文件中:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">我的第一个网页</title>
</head>
<body>
    <h1>你好,世界!</h1>
    <p>这是我的第一个 HTML 页面。</p>
</body>
</html>
  1. 保存文件,在 VS Code 中右键点击 index.html,选择 "Open with Live Server",你的浏览器就会自动打开并显示这个页面。

代码解释

html5css3网站设计教程
(图片来源网络,侵删)
  • <!DOCTYPE html>:声明这是一个 HTML5 文档。
  • <html>:根元素,所有其他元素都包含在其中。
  • <head>:包含页面的元数据(数据的数据),如标题、字符编码、引入的 CSS 等,不会直接显示在页面上。
  • <title>:显示在浏览器标签页上的标题。
  • <body>:包含所有可见的页面内容,如标题、段落、图片等。
  • <h1>,最重要的标题。
  • <p>:段落。

第二部分:HTML5 深度解析

HTML5 不仅仅是新标签,它更语义化、更强大。

1 核心结构标签

HTML5 引入了许多语义化标签,让代码结构更清晰,对搜索引擎更友好。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">语义化结构</title>
</head>
<body>
    <header>
        <h1>网站标题</h1>
        <nav>
            <a href="#">首页</a> | <a href="#">关于我们</a> | <a href="#">联系方式</a>
        </nav>
    </header>
    <main>
        <article>
            <h2>文章标题</h2>
            <p>这是一篇文章的内容...</p>
        </article>
        <aside>
            <h3>侧边栏</h3>
            <p>一些相关的链接或信息...</p>
        </aside>
    </main>
    <footer>
        <p>&copy; 2025 我的网站. 保留所有权利.</p>
    </footer>
</body>
</html>
  • <header>:页面或区域的头部。
  • <nav>:导航链接区域。
  • <main>:页面的主要内容,一个页面只有一个。
  • <article>:独立的文章内容。
  • <aside>:侧边栏,与主要内容相关但可以独立存在。
  • <footer>:页面或区域的底部。

2 文本内容标签

  • <h1> (最重要) 到 <h6> (最不重要)。
  • 段落<p>
  • 链接<a href="https://www.google.com">谷歌</a>
  • 图片<img src="image.jpg" alt="图片描述">src 是源路径,alt 是替代文本,当图片无法显示时会显示,并且对 SEO 和屏幕阅读器至关重要。
  • 列表
    • 无序列表<ul> (Unordered List) + <li> (List Item)。
    • 有序列表<ol> (Ordered List) + <li>
    • 定义列表<dl> + <dt> (Term) + <dd> (Description)。

3 多媒体标签

HTML5 引入了原生支持音视频的标签,告别了 Flash。

  • 视频<video>
    <video width="320" height="240" controls>
        <source src="movie.mp4" type="video/mp4">
        您的浏览器不支持 video 标签。
    </video>
  • 音频<audio>
    <audio controls>
        <source src="audio.mp3" type="audio/mpeg">
        您的浏览器不支持 audio 标签。
    </audio>

4 表单与输入

表单是用户与网站交互的核心。

html5css3网站设计教程
(图片来源网络,侵删)
  • <form>:表单容器。
    • action:表单提交到的服务器地址。
    • method:提交方法,通常是 GET (数据在 URL 中) 或 POST (数据在请求体中,更安全)。
  • <input>:最常用的输入控件。
    • type 属性决定了输入框的类型:text (文本), password (密码), email (邮箱), number (数字), checkbox (复选框), radio (单选按钮), submit (提交按钮) 等。
  • <label>:为输入控件提供标签,提高可访问性。
  • <button>:按钮。

示例

<form action="/submit-form" method="post">
    <div>
        <label for="username">用户名:</label>
        <input type="text" id="username" name="username" required>
    </div>
    <div>
        <label for="password">密码:</label>
        <input type="password" id="password" name="password" required>
    </div>
    <div>
        <input type="checkbox" id="remember" name="remember">
        <label for="remember">记住我</label>
    </div>
    <button type="submit">登录</button>
</form>

第三部分:CSS3 精髓

CSS3 赋予了网页无与伦比的视觉表现力。

1 如何引入 CSS

有三种方式,推荐使用第三种。

  1. 内联样式:直接写在 HTML 标签里,不推荐。
    <p style="color: blue; font-size: 20px;">这是一个段落。</p>
  2. 内部样式表:写在 <head><style> 标签里,适用于单页面。
    <head>
        <style>
            p {
                color: blue;
                font-size: 20px;
            }
        </style>
    </head>
  3. 外部样式表 (推荐):创建一个 .css 文件,然后在 HTML 中通过 <link> 引入,这是最佳实践,便于维护和复用。
    <!-- index.html -->
    <head>
        <link rel="stylesheet" href="styles.css">
    </head>
    /* styles.css */
    p {
        color: blue;
        font-size: 20px;
    }

2 CSS 选择器

选择器是 CSS 的核心,它告诉浏览器要对哪个元素进行样式设置。

  • 元素选择器p { ... } (所有 <p> 标签)。
  • 类选择器.class-name { ... } (所有 class="class-name" 的元素),最常用!
  • ID 选择器#id-name { ... } (唯一一个 id="id-name" 的元素),一个页面 ID 应唯一。
  • 后代选择器div p { ... } (所有在 <div> 内部的 <p> 标签)。
  • 伪类选择器hover, active, link, visited (用于链接的不同状态)。
    a:hover {
        color: red;
        text-decoration: none;
    }

3 盒模型

理解盒模型是布局的基础,每个 HTML 元素都可以看作一个盒子,由 content (内容), padding (内边距), border (边框), margin (外边距) 组成。

  • widthheight 只控制 content 区域的大小。
  • box-sizing: border-box; 是现代 Web 开发的标配!它让 widthheight 包含 content + padding + border,计算更直观。
.box {
    width: 300px;
    height: 200px;
    padding: 20px;
    border: 10px solid black;
    /* 
        如果没有 box-sizing, 实际宽度会是 300 + 20*2 + 10*2 = 340px
        如果设置了 box-sizing: border-box, 实际宽度就是 300px
    */
    box-sizing: border-box; 
}

4 布局

CSS3 提供了强大的布局工具。

Flexbox (弹性盒子):一维布局,非常适合做导航栏、居中内容、分配空间。

.container {
    display: flex; /* 开启 Flexbox 布局 */
    justify-content: space-between; /* 主轴对齐 */
    align-items: center; /* 交叉轴对齐 */
}
.item {
    flex-grow: 1; /* 占据可用空间 */
    margin: 10px;
}

Grid (网格):二维布局,非常适合做整体页面布局、复杂的网格系统。

.grid-container {
    display: grid; /* 开启 Grid 布局 */
    grid-template-columns: 1fr 3fr 1fr; /* 三列,比例 1:3:1 */
    grid-template-rows: auto 1fr auto; /* 三行,高度自适应 */
    gap: 20px; /* 网格间距 */
}
.header {
    grid-column: 1 / -1; /* 从第1列跨越到最后一列 */
}

5 响应式设计

让你的网站在不同尺寸的设备(手机、平板、桌面)上都有良好的显示效果。

  • 视口<meta name="viewport" content="width=device-width, initial-scale=1.0;">,这是移动端响应式设计的基石
  • 媒体查询:根据设备的特性(如宽度)应用不同的 CSS 样式。
/* 默认样式(应用于所有设备) */
body {
    font-size: 16px;
}
/* 当屏幕宽度小于等于 768px 时(平板和手机) */
@media (max-width: 768px) {
    body {
        font-size: 14px;
    }
    .container {
        flex-direction: column; /* 将横向布局改为纵向 */
    }
}
/* 当屏幕宽度小于等于 480px 时(手机) */
@media (max-width: 480px) {
    body {
        font-size: 12px;
    }
}

6 CSS3 新特性

  • 颜色:除了 color: red;,还可以使用 rgba(), hsl() 带透明度的颜色。
  • 边框border-radius (圆角), box-shadow (阴影)。
  • 文本text-shadow (文字阴影), @font-face (引入自定义字体)。
  • 过渡与动画
    • transition:让属性变化更平滑(如悬停时颜色渐变)。
    • @keyframesanimation:创建复杂的动画。

第四部分:实战项目 - 个人作品集网站

我们将所有知识整合起来,创建一个简单的个人作品集网站。

项目结构

my-portfolio/
├── index.html
├── css/
│   └── style.css
└── images/
    └── profile-pic.jpg

步骤 1: 创建 HTML 结构 (index.html)

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">张三 - 前端开发工程师</title>
    <link rel="stylesheet" href="css/style.css">
</head>
<body>
    <header>
        <div class="container">
            <h1>张三</h1>
            <nav>
                <ul>
                    <li><a href="#about">关于我</a></li>
                    <li><a href="#projects">项目</a></li>
                    <li><a href="#contact">联系我</a></li>
                </ul>
            </nav>
        </div>
    </header>
    <main>
        <section id="hero">
            <div class="container">
                <h2>你好,我是张三</h2>
                <p>一名热爱创造优秀用户体验的前端开发工程师。</p>
                <a href="#projects" class="btn">查看我的作品</a>
            </div>
        </section>
        <section id="about">
            <div class="container">
                <h2>关于我</h2>
                <p>这里是关于我的详细介绍...</p>
            </div>
        </section>
        <section id="projects">
            <div class="container">
                <h2>我的项目</h2>
                <div class="project-grid">
                    <div class="project-card">
                        <img src="https://via.placeholder.com/300x200" alt="项目1">
                        <h3>项目一</h3>
                        <p>项目一的描述。</p>
                    </div>
                    <div class="project-card">
                        <img src="https://via.placeholder.com/300x200" alt="项目2">
                        <h3>项目二</h3>
                        <p>项目二的描述。</p>
                    </div>
                </div>
            </div>
        </section>
    </main>
    <footer>
        <div class="container">
            <p>&copy; 2025 张三. All rights reserved.</p>
        </div>
    </footer>
</body>
</html>

步骤 2: 编写 CSS 样式 (css/style.css)

/* 全局样式和变量 */
:root {
    --primary-color: #3498db;
    --secondary-color: #2c3e50;
    --text-color: #333;
    --light-bg: #ecf0f1;
}
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    line-height: 1.6;
    color: var(--text-color);
}
.container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}
/* 头部样式 */
header {
    background-color: var(--secondary-color);
    color: white;
    padding: 1rem 0;
    position: sticky;
    top: 0;
}
header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
header h1 {
    font-size: 1.5rem;
}
header nav ul {
    list-style: none;
    display: flex;
}
header nav ul li a {
    color: white;
    text-decoration: none;
    padding: 0.5rem 1rem;
    transition: color 0.3s ease;
}
header nav ul li a:hover {
    color: var(--primary-color);
}
区域 */
section {
    padding: 4rem 0;
}
#hero {
    background-color: var(--primary-color);
    color: white;
    text-align: center;
}
#hero h2 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
}
#hero p {
    font-size: 1.2rem;
    margin-bottom: 2rem;
}
/* 按钮样式 */
.btn {
    display: inline-block;
    background-color: white;
    color: var(--primary-color);
    padding: 0.8rem 1.5rem;
    border-radius: 5px;
    text-decoration: none;
    font-weight: bold;
    transition: transform 0.3s ease;
}
.btn:hover {
    transform: translateY(-3px);
}
/* 项目网格 */
.project-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}
.project-card {
    background-color: white;
    border: 1px solid #ddd;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    transition: transform 0.3s ease;
}
.project-card:hover {
    transform: translateY(-10px);
}
.project-card img {
    width: 100%;
    height: 200px;
    object-fit: cover;
}
.project-card h3 {
    padding: 1rem;
    margin: 0;
}
.project-card p {
    padding: 0 1rem 1rem;
    color: #666;
}
/* 页脚样式 */
footer {
    background-color: var(--secondary-color);
    color: white;
    text-align: center;
    padding: 1.5rem 0;
}
/* 响应式设计 */
@media (max-width: 768px) {
    header .container {
        flex-direction: column;
    }
    header nav ul {
        margin-top: 1rem;
    }
    #hero h2 {
        font-size: 2rem;
    }
}

步骤 3: 运行和调试

  1. 将你的个人照片放在 images 文件夹中,并替换 HTML 中的 img 标签 src
  2. 确保所有文件路径正确。
  3. 在 VS Code 中用 Live Server 打开 index.html
  4. 在浏览器中打开开发者工具(F12 或 Ctrl+Shift+I),调整窗口大小,观察响应式效果。
  5. 检查是否有样式错误或布局问题,并根据需要修改 CSS。

学习资源推荐

  • MDN Web Docs (Mozilla Developer Network):最权威、最全面的 Web 技术文档,遇到任何问题,第一反应就是查 MDN。
  • freeCodeCamp:提供免费的互动式编程课程,非常友好。
  • W3Schools:另一个流行的在线教程和参考网站。
  • CSS-Tricks:CSS 的各种技巧和深入文章。
  • YouTube 频道
    • Traversy Media:高质量的前端教程。
    • The Net Ninja精炼,易于理解。

总结与进阶

恭喜你!你已经掌握了 HTML5 和 CSS3 的核心知识,并完成了你的第一个实战项目。

下一步可以学习:

  1. JavaScript:为你的网页添加交互性,让按钮点击、表单验证等动态效果成为可能,这是成为前端开发者的下一步。
  2. CSS 预处理器:如 Sass 或 Less,它们增加了变量、嵌套、混合等特性,让 CSS 更易于维护。
  3. 前端框架:如 React, Vue, Angular,它们用于构建复杂的单页应用程序。
  4. 版本控制 Git:管理你的代码,方便协作和回滚。

学习是一个持续的过程,多动手,多看别人的代码,多思考,你很快就能成为一名优秀的前端开发者!