This repository has been archived on 2026-05-19. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
obsidian/FRONTEND/HTML 基础.md
T

127 lines
3.5 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.
---
tags: [前端, HTML, 基础]
create time: 2026-04-24 18:41
---
# HTML 基础
## 概述
HTML(HyperText Markup Language)是构建网页的骨架。它不是一门编程语言,而是一种标记语言——用标签(tag)告诉浏览器"这里是一段标题"、"这里是一个按钮"、"这里是一张图片"。
思考题:为什么 HTML 被称为"标记语言"而不是"编程语言"?它有没有变量、循环或条件判断的能力?
## 正文
### 1. HTML 文档结构
一个标准的 HTML 文档包含以下核心部分:
```html
<!DOCTYPE html> <!-- 文档类型声明:告诉浏览器这是 HTML5 -->
<html lang="zh-CN"> <!-- 根元素,lang 指定语言 -->
<head> <!-- 元信息容器:不直接显示 -->
<meta charset="UTF-8"> <!-- 字符编码 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>页面标题</title> <!-- 浏览器标签页标题 -->
</head>
<body> <!-- 可见内容容器 -->
<h1>Hello World</h1>
<p>这是一段文字</p>
</body>
</html>
```
### 2. 常用标签分类
**标题与段落:**
| 标签 | 用途 |
|------|------|
| `<h1>` ~ `<h6>` | 标题(h1 最大,h6 最小) |
| `<p>` | 段落 |
| `<br>` | 换行 |
| `<hr>` | 水平线 |
**文本格式化:**
| 标签 | 用途 |
|------|------|
| `<strong>` | 加粗(语义:重要) |
| `<em>` | 斜体(语义:强调) |
| `<code>` | 代码 |
| `<mark>` | 高亮 |
**链接与图片:**
```html
<a href="https://example.com" target="_blank">打开新窗口</a> <!-- 外部链接 -->
<img src="photo.jpg" alt="描述文字"> <!-- 图片(alt 必填) -->
```
> **提问:** 为什么 `<img>` 标签的 `alt` 属性是必填的?它除了辅助功能外,还对 SEO(搜索引擎优化)有什么影响?
**列表:**
```html
<!-- 无序列表 -->
<ul>
<li>第一项</li>
<li>第二项</li>
</ul>
<!-- 有序列表 -->
<ol>
<li>第一步</li>
<li>第二步</li>
</ol>
```
### 3. 表单 — 用户交互的核心
```html
<form action="/api/submit" method="POST">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required>
<label for="email">邮箱:</label>
<input type="email" id="email" name="email" placeholder="example@mail.com">
<label for="password">密码:</label>
<input type="password" id="password" name="password">
<label for="gender">性别:</label>
<select id="gender" name="gender">
<option value="">请选择</option>
<option value="male">男</option>
<option value="female">女</option>
</select>
<button type="submit">提交</button>
</form>
```
> **思考:** `GET` 和 `POST` 方法有什么区别?为什么登录表单必须用 `POST` 而不是 `GET`?
### 4. 语义化标签 — HTML5 的新武器
```html
<header> <!-- 页眉 -->
<nav> <!-- 导航栏 -->
<main> <!-- 主要内容 -->
<section> <!-- 独立章节 -->
<article> <!-- 独立文章 -->
<aside> <!-- 侧边栏 -->
<footer> <!-- 页脚 -->
```
语义化的好处:
- **SEO 友好**:搜索引擎更容易理解页面结构
- **无障碍访问**:屏幕阅读器能更好地辅助视障用户
- **代码可读性**:开发者一眼就能看懂结构
## 关联笔记
- [[CSS 基础]] — 接下来学习如何用 CSS 美化 HTML
- [[JavaScript 基础]] — 最后学习如何让页面动起来