HTML语法是编写网页的基础规则。掌握正确的语法,才能编写出规范、可维护的HTML代码。
东巴文(db-w.cn) 认为:HTML语法就像语言的语法规则,虽然宽松,但遵循标准才能让代码更易读、更专业。
<!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>
<!-- 页面内容 -->
</body>
</html>
东巴文解释:
| 部分 | 作用 | 东巴文说明 |
|---|---|---|
<!DOCTYPE html> |
文档类型声明 | 📋 告诉浏览器这是HTML5文档 |
<html> |
根元素 | 🌳 所有HTML元素的容器 |
<head> |
文档头部 | 🧠 包含元数据、标题、样式等 |
<body> |
文档主体 | 📄 包含可见的页面内容 |
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="东巴文HTML教学">
<meta name="keywords" content="HTML, 教程, 东巴文">
<meta name="author" content="东巴文">
<title>HTML语法基础 - 东巴文</title>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
<header>
<h1>网站标题</h1>
<nav>
<ul>
<li><a href="#home">首页</a></li>
<li><a href="#about">关于</a></li>
</ul>
</nav>
</header>
<main>
<article>
<h2>文章标题</h2>
<p>文章内容...</p>
</article>
</main>
<footer>
<p>© 2024 东巴文(db-w.cn)</p>
</footer>
</body>
</html>
HTML标签由尖括号包围的关键词组成:
<标签名>内容</标签名>
东巴文规则:
<标签名></标签名>(在标签名前加斜杠)<p>这是一个段落</p>
<div>这是一个容器</div>
<span>这是一个行内元素</span>
东巴文说明:双标签必须有开始和结束标签,内容放在中间。
<br>
<hr>
<img src="image.jpg" alt="图片">
<input type="text">
<meta charset="UTF-8">
东巴文说明:单标签不需要结束标签,HTML5中不需要在结尾加斜杠/。
某些标签的结束标签可以省略(但不推荐):
<!-- 不推荐:省略结束标签 -->
<p>第一段
<p>第二段
<!-- 推荐:始终写结束标签 -->
<p>第一段</p>
<p>第二段</p>
东巴文建议:为了代码清晰和可维护性,始终写结束标签。
<!-- ✅ 正确:标签正确嵌套 -->
<div>
<p>这是一个段落</p>
</div>
<ul>
<li>列表项1</li>
<li>列表项2</li>
</ul>
<!-- ❌ 错误:标签交叉嵌套 -->
<div>
<p>这是一个段落
</div>
</p>
<!-- ❌ 错误:块级元素嵌套在行内元素中 -->
<span>
<div>这是不允许的</div>
</span>
东巴文规则:
<p>标签不能包含块级元素<标签名 属性名="属性值">内容</标签名>
东巴文解释:
<!-- 单个属性 -->
<a href="https://db-w.cn">东巴文</a>
<!-- 多个属性 -->
<img src="image.jpg" alt="示例图片" width="300" height="200">
<!-- 布尔属性 -->
<input type="text" disabled>
<input type="checkbox" checked>
<!-- ✅ 正确:使用引号 -->
<div class="container"></div>
<input type="text" value="东巴文">
<!-- ❌ 错误:不加引号(虽然浏览器能解析,但不规范) -->
<div class=container></div>
东巴文建议:始终使用引号包围属性值,推荐使用双引号。
<!-- 使用单引号包围,内部可以用双引号 -->
<div title='这是"东巴文"的示例'></div>
<!-- 使用双引号包围,内部可以用单引号 -->
<div title="这是'东巴文'的示例"></div>
<!-- 使用实体引用 -->
<div title="这是"东巴文"的示例"></div>
<!-- 布尔属性:存在即为true -->
<input type="text" disabled>
<input type="text" disabled="disabled">
<input type="text" disabled="">
<!-- 以上三种写法效果相同 -->
东巴文说明:布尔属性推荐使用第一种写法,简洁明了。
所有HTML元素都可以使用的属性:
| 属性 | 说明 | 示例 |
|---|---|---|
id |
唯一标识符 | <div id="header"> |
class |
类名 | <div class="container"> |
style |
内联样式 | <div style="color: red;"> |
title |
提示文本 | <div title="提示"> |
lang |
语言代码 | <html lang="zh-CN"> |
dir |
文本方向 | <div dir="rtl"> |
hidden |
隐藏元素 | <div hidden> |
tabindex |
Tab键顺序 | <div tabindex="1"> |
某些标签特有的属性:
<!-- 链接标签 -->
<a href="https://db-w.cn" target="_blank" rel="noopener">东巴文</a>
<!-- 图片标签 -->
<img src="image.jpg" alt="图片" width="300" height="200">
<!-- 表单标签 -->
<input type="text" name="username" placeholder="请输入用户名" required>
<!-- 视频标签 -->
<video src="video.mp4" controls autoplay muted></video>
<!-- 这是一个注释 -->
<p>这是一个段落</p>
<!--
这是多行注释
可以跨越多行
用于详细说明
-->
<div>
<p>内容</p>
</div>
东巴文建议:
<!-- 导航栏 -->
<nav>
<ul>
<li><a href="#home">首页</a></li>
<li><a href="#about">关于</a></li>
</ul>
</nav>
<!--
<div class="old-content">
这段代码暂时不需要
</div>
-->
<!--
作者:东巴文
网站:https://db-w.cn
创建时间:2024-01-01
-->
东巴文提醒:
<!DOCTYPE html>
理由:确保浏览器以标准模式渲染页面。
<!-- ✅ 推荐 -->
<div class="container"></div>
<!-- ❌ 不推荐 -->
<DIV CLASS="container"></DIV>
理由:符合HTML5规范,代码更统一。
<!-- ✅ 推荐 -->
<p>段落</p>
<div>容器</div>
<!-- ❌ 不推荐 -->
<p>段落
<div>容器
理由:代码更清晰,避免渲染问题。
<!-- ✅ 推荐 -->
<div class="container" id="main"></div>
<!-- ❌ 不推荐 -->
<div class=container id=main></div>
理由:符合规范,避免解析错误。
<!-- ✅ 正确 -->
<div>
<p>段落</p>
</div>
<!-- ❌ 错误 -->
<div>
<p>段落
</div>
</p>
理由:保证DOM结构正确。
<!-- ✅ 推荐:语义化 -->
<header></header>
<nav></nav>
<main>
<article></article>
</main>
<footer></footer>
<!-- ❌ 不推荐:滥用div -->
<div class="header"></div>
<div class="nav"></div>
<div class="main">
<div class="article"></div>
</div>
<div class="footer"></div>
理由:提升可访问性和SEO。
<!-- ❌ 错误:缺少DOCTYPE -->
<html>
<head>
<title>页面</title>
</head>
<body>
<p>内容</p>
</body>
</html>
后果:浏览器可能进入混杂模式,导致渲染异常。
东巴文解决方案:始终在文档第一行添加<!DOCTYPE html>。
<!-- ❌ 错误:标签未闭合 -->
<div>
<p>段落1
<p>段落2
</div>
后果:可能导致布局错乱。
东巴文解决方案:始终闭合所有双标签。
<!-- ❌ 错误:属性值未加引号 -->
<div class=container id=main></div>
后果:如果属性值包含空格,会导致解析错误。
东巴文解决方案:始终用引号包围属性值。
<!-- ❌ 错误:行内元素包含块级元素 -->
<span>
<div>这是不允许的</div>
</span>
<!-- ❌ 错误:p标签包含块级元素 -->
<p>
<div>这也是不允许的</div>
</p>
后果:浏览器会自动修正,导致不可预期的结果。
东巴文解决方案:遵循HTML嵌套规则。
<!-- ❌ 错误:特殊字符未转义 -->
<p>价格:100元 < 200元</p>
<p>版权所有 © 2024</p>
后果:<可能被误认为标签开始,&需要转义。
东巴文解决方案:使用字符实体。
<!-- ✅ 正确:使用字符实体 -->
<p>价格:100元 < 200元</p>
<p>版权所有 © 2024</p>
东巴文推荐:
W3C Markup Validation Service
HTML5 Outliner
// 在浏览器控制台执行
console.log(document.doctype);
console.log(document.documentElement.outerHTML);
东巴文技巧:使用浏览器开发者工具(F12)查看和调试HTML代码。
推荐安装:
<!-- ✅ 推荐:良好的缩进 -->
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>文档标题</title>
</head>
<body>
<header>
<h1>网站标题</h1>
<nav>
<ul>
<li><a href="#home">首页</a></li>
<li><a href="#about">关于</a></li>
</ul>
</nav>
</header>
<main>
<article>
<h2>文章标题</h2>
<p>文章内容...</p>
</article>
</main>
<footer>
<p>© 2024 东巴文(db-w.cn)</p>
</footer>
</body>
</html>
东巴文建议:
<!-- 页面头部 -->
<header>
<!-- 网站Logo -->
<div class="logo">
<img src="logo.png" alt="东巴文">
</div>
<!-- 主导航 -->
<nav>
<ul>
<li><a href="#home">首页</a></li>
<li><a href="#about">关于</a></li>
</ul>
</nav>
</header>
<!-- 主要内容区域 -->
<main>
<!-- 文章列表 -->
<section class="articles">
<article>
<h2>文章标题</h2>
<p>文章内容...</p>
</article>
</section>
</main>
<!-- 页面底部 -->
<footer>
<p>© 2024 东巴文(db-w.cn)</p>
</footer>
问题1:以下哪个是正确的HTML注释?
A. // 这是注释
B. /* 这是注释 */
C. <!-- 这是注释 -->
D. # 这是注释
答案:C
东巴文解释:HTML使用<!-- 注释 -->格式,其他选项是CSS(B)、JavaScript(A、D)的注释格式。
问题2:以下哪个属性是布尔属性?
A. class
B. id
C. disabled
D. href
答案:C
东巴文解释:disabled是布尔属性,存在即为true。其他属性都需要指定值。
任务:创建一个符合HTML5语法的文档,包含以下要求:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="东巴文HTML语法示例">
<meta name="author" content="东巴文">
<title>HTML语法基础 - 东巴文</title>
</head>
<body>
<!-- 页面头部 -->
<header>
<h1>东巴文</h1>
<nav>
<ul>
<li><a href="#home">首页</a></li>
<li><a href="#about">关于</a></li>
<li><a href="#contact">联系</a></li>
</ul>
</nav>
</header>
<!-- 主要内容 -->
<main>
<article>
<h2>HTML语法基础</h2>
<p>HTML语法是编写网页的基础规则。</p>
<p>掌握正确的语法,才能编写出规范、可维护的HTML代码。</p>
</article>
</main>
<!-- 页面底部 -->
<footer>
<p>© 2024 东巴文(db-w.cn)</p>
</footer>
</body>
</html>
</details>
东巴文(db-w.cn) - 让编程学习更有趣、更高效!