Files
test-repo/docs/zh-cn/appendix/web-basics.md
T
2026-01-15 20:10:19 +08:00

335 lines
8.3 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.
# HTML/CSS/JS 基础 (Web Basics)
> 💡 **学习指南**:网页开发的三大基石,每个前端工程师的必修课。本章节将通过可视化和实战示例,带你快速理解 HTML、CSS 和 JavaScript 的职责与协作关系。
## 0. 快速上手:三剑客简介
现代网页由三种核心技术组成,它们各司其职,缺一不可。
<WebTechTriad />
## 1. HTML:网页的骨架
### 1.1 什么是 HTML
**HTML (HyperText Markup Language)** 是超文本标记语言,用来定义网页的<strong>结构和内容</strong>。
简单来说,HTML 告诉浏览器:
- 这里是标题
- 这里是段落
- 这里是图片
- 这里是链接
### 1.2 HTML 基础语法
```html
<!-- 这是一个标题 -->
<h1>欢迎来到我的网站</h1>
<!-- 这是一个段落 -->
<p>这是一段文字内容。</p>
<!-- 这是一个图片 -->
<img src="photo.jpg" alt="我的照片">
<!-- 这是一个链接 -->
<a href="https://example.com">点击这里</a>
```
**关键概念**
- **标签 (Tags)**:用 `< >` 包裹的关键字,如 `<h1>`
- **元素 (Elements)**:标签 + 内容,如 `<h1>标题</h1>`
- **属性 (Attributes)**:标签的附加信息,如 `src="photo.jpg"`
- **嵌套 (Nesting)**:标签可以包含其他标签
### 1.3 常用 HTML 标签
| 标签 | 用途 | 示例 |
|------|------|------|
| `<h1>` - `<h6>` | 标题(从大到小) | `<h1>文章标题</h1>` |
| `<p>` | 段落 | `<p>这是一段话。</p>` |
| `<div>` | 容器(块级) | `<div class="header">...</div>` |
| `<span>` | 容器(行内) | `<span style="color:red">红色文字</span>` |
| `<ul>` / `<ol>` | 列表(无序/有序) | `<ul><li>项目1</li></ul>` |
| `<a>` | 链接 | `<a href="/about">关于</a>` |
| `<img>` | 图片 | `<img src="cat.jpg" alt="猫咪">` |
| `<button>` | 按钮 | `<button>点击我</button>` |
## 2. CSS:网页的化妆师
### 2.1 什么是 CSS
**CSS (Cascading Style Sheets)** 是层叠样式表,用来控制网页的<strong>外观和布局</strong>。
简单来说,CSS 告诉浏览器:
- 这个标题是红色的
- 这段文字要居中显示
- 这个盒子要圆角边框
- 背景是渐变色
### 2.2 CSS 盒模型交互演示
**盒模型** 是 CSS 中最重要的概念之一!每个元素都被表示为一个矩形的盒子。
<CssBoxModel />
**关键要点**
- **Content(内容)**:元素的实际内容区域
- **Padding(内边距)**:内容和边框之间的空间
- **Border(边框)**:包裹内容的边界线
- **Margin(外边距)**:元素与其他元素之间的空间
- **总宽度** = margin + border + padding + width + padding + border + margin
### 2.3 CSS Flexbox 布局交互演示
**Flexbox** 是现代 CSS 布局的利器,让元素排列变得简单!
<CssFlexbox />
**Flexbox 核心概念**
- **flex-direction**:控制主轴方向(行/列)
- **justify-content**:控制主轴对齐方式
- **align-items**:控制交叉轴对齐方式
- **flex-wrap**:控制是否换行
- **gap**:控制项目间距
- **flex-grow**:控制项目的放大比例
### 2.4 CSS 基础语法
```css
/* 选择器 { 属性: 值; } */
h1 {
color: red; /* 文字颜色 */
font-size: 24px; /* 字体大小 */
text-align: center; /* 文字居中 */
}
.button {
background: #007bff; /* 背景颜色 */
border: none; /* 无边框 */
padding: 10px 20px; /* 内边距 */
border-radius: 5px; /* 圆角 */
}
.button:hover {
background: #0056b3; /* 鼠标悬停时的颜色 */
}
```
**关键概念**
- **选择器 (Selector)**:要样式化的元素,如 `h1`
- **属性 (Property)**:要改变的样式,如 `color`
- **值 (Value)**:属性的设置,如 `red`
- **盒模型 (Box Model)**padding, border, margin
### 2.3 CSS 引入方式
三种方式引入 CSS
```html
<!-- 1. 行内样式 -->
<div style="color: red;">红色文字</div>
<!-- 2. 内部样式表 -->
<head>
<style>
.box { background: blue; }
</style>
</head>
<!-- 3. 外部样式表(推荐) -->
<head>
<link rel="stylesheet" href="styles.css">
</head>
```
## 3. JavaScript:网页的灵魂
### 3.1 什么是 JavaScript
**JavaScript** 是一种编程语言,用来实现网页的<strong>交互和动态功能</strong>。
简单来说,JavaScript 让网页:
- 响应用户点击
- 处理表单提交
- 加载数据并更新页面
- 创建动画效果
### 3.2 DOM 操作交互演示
**DOM (Document Object Model)** 文档对象模型,是 JavaScript 操作网页内容的接口。
<DomManipulator />
**DOM 操作核心方法**
- **获取元素**`document.getElementById()``document.querySelector()`
- **修改内容**`element.textContent``element.innerHTML`
- **修改样式**`element.style.property = value`
- **添加/删除类**`element.classList.add()``element.classList.remove()`
- **显示/隐藏**`element.style.display = 'none'/'block'`
### 3.3 JavaScript 基础语法
```javascript
// 变量声明
let message = "Hello, World!";
// 函数定义
function greet(name) {
return "Hello, " + name + "!";
}
// 事件监听
button.addEventListener('click', function() {
alert('按钮被点击了!');
});
// DOM 操作
document.getElementById('title').textContent = '新标题';
```
**关键概念**
- **变量 (Variables)**:存储数据,如 `let x = 10;`
- **函数 (Functions)**:可复用的代码块
- **事件 (Events)**:用户动作(点击、输入等)
- **DOM (Document Object Model)**:网页内容的编程接口
### 3.3 JavaScript 引入方式
```html
<!-- 1. 行内脚本(不推荐) -->
<button onclick="alert('Hi')">点击</button>
<!-- 2. 内部脚本 -->
<head>
<script>
console.log('Hello!');
</script>
</head>
<!-- 3. 外部脚本(推荐) -->
<body>
<script src="script.js"></script>
</body>
```
## 4. 三者协作示例
让我们看一个完整的例子:
```html
<!DOCTYPE html>
<html>
<head>
<!-- CSS 样式 -->
<style>
.card {
border: 1px solid #ddd;
padding: 20px;
border-radius: 8px;
background: white;
}
.btn {
background: #007bff;
color: white;
border: none;
padding: 10px 20px;
border-radius: 4px;
cursor: pointer;
}
</style>
</head>
<body>
<!-- HTML 结构 -->
<div class="card">
<h1 id="title">欢迎</h1>
<p>点击按钮改变标题!</p>
<button class="btn" onclick="changeTitle()">点击我</button>
</div>
<!-- JavaScript 交互 -->
<script>
function changeTitle() {
document.getElementById('title').textContent = '已点击!';
alert('标题已改变');
}
</script>
</body>
</html>
```
## 5. 学习路线图
### 5.1 初学者路线
1. **第一周**HTML 基础
- 学习常用标签
- 理解文档结构
- 创建第一个网页
2. **第二周**CSS 基础
- 掌握盒模型
- 学习布局方式
- 美化你的网页
3. **第三周**JavaScript 基础
- 理解变量和函数
- 学习 DOM 操作
- 添加交互功能
### 5.2 进阶学习方向
**HTML 深入**
- 语义化标签 (`<header>`, `<nav>`, `<article>`)
- 表单增强
- SEO 优化
**CSS 深入**
- Flexbox 和 Grid 布局
- 响应式设计
- CSS 动画
**JavaScript 深入**
- ES6+ 新特性
- 异步编程 (Promise, async/await)
- 框架学习 (Vue, React)
## 6. 实用工具推荐
### 6.1 编辑器
- **VS Code**:最流行的代码编辑器
- **WebStorm**:专业的 IDE
- **Sublime Text**:轻量级编辑器
### 6.2 浏览器开发者工具
`F12` 打开,包含:
- **Elements**:查看和修改 HTML/CSS
- **Console**:执行 JavaScript 代码
- **Network**:监控网络请求
- **Sources**:调试 JavaScript
### 6.3 学习资源
- **MDN Web Docs**Mozilla 官方文档
- **W3Schools**:入门教程
- **freeCodeCamp**:互动式学习
- **Codecademy**:实战练习
## 7. 总结
HTML/CSS/JavaScript 是网页开发的三大支柱:
- 🏗️ **HTML** = 结构(是什么)
- 🎨 **CSS** = 表现(长什么样)
-**JavaScript** = 行为(做什么)
**学习建议**
- ✅ 先学 HTML,再学 CSS,最后学 JavaScript
- ✅ 多动手实践,创建小项目
- ✅ 查看优秀网站的源代码
- ✅ 使用浏览器开发者工具实验
记住:<strong>理论 + 实践 = 掌握</strong>。现在就开始创建你的第一个网页吧!