跳转至

课时06:HTML 基本语法

学习目标:掌握 HTML 标签的书写规范、属性定义规则、空白折叠现象及代码缩进约定,能够编写结构清晰、符合规范的 HTML 代码。


一、标签的基本语法与分类

1.1 标签书写规则

HTML 标签必须书写在一对尖括号 < > 内部,基本形式如下:

<标签名>内容</标签名>    <!-- 双标签 -->
<标签名 />              <!-- 单标签(自闭合) -->

1.2 双标签(Paired Tags)

双标签必须成对出现,包含开始标签结束标签

<h1>这是一级标题</h1>
<p>这是一个段落</p>
<div>这是一个容器</div>
  • 结束标签必须在标签名前添加关闭符 /(如 </h1>
  • 内容存放在开始标签与结束标签之间的区域

1.3 单标签(Void / Empty Tags)

单标签没有内容区域,无需结束标签,在 HTML5 中可省略自闭合斜杠:

<!-- 图片标签 -->
<img src="photo.jpg" alt="描述文本">

<!-- 换行标签 -->
<br>

<!-- 水平分割线 -->
<hr>

1.4 标签分类:容器级 vs 文本级

分类 定义 可嵌套内容 典型标签
容器级标签 内部可存放任意标签(包括其他容器级或文本级标签) 任意标签、文本 <div><ul><li><table>
文本级标签 内部只能存放文本或其他文本级标签 文本、文本级标签 <span><a><img><br>

1.5 标签嵌套规则

<!-- 正确嵌套:外层 div 包裹内层 p 标签 -->
<div>
    <p>这是一段文字</p>
</div>

<!-- 错误嵌套:p 标签不能包裹块级元素(浏览器会自动修正) -->
<p><div>错误嵌套</div></p>    <!-- 浏览器会拆分为多个独立 p 标签 -->

重要提示:HTML 对非法嵌套不会报错,但浏览器会强制修正解析结构,导致实际 DOM 与源码不一致,引发难以排查的样式问题。


二、属性的含义与书写规范

2.1 属性的定义

属性是标签的附加特性,用于赋予标签特定功能或修改默认行为。每个属性都是键值对(Key-Value)结构。

2.2 属性书写位置

属性位于开始标签名之后(或单标签名之后),与标签名之间用空格分隔:

<!-- 双标签的属性写在开始标签中 -->
<a href="https://www.example.com">链接文字</a>

<!-- 单标签的属性直接写在标签名后 -->
<img src="image.png" alt="图片说明">

2.3 键值对结构

<标签名 属性名="属性值">
  • 属性名(key):属性标识符(如 hrefsrcclass
  • 属性值(value):属性的具体设置,必须用双引号单引号包裹

示例解析

<a href="https://www.baidu.com" title="访问百度">
  • href 是属性名,"https://www.baidu.com" 是属性值
  • title 是属性名,"访问百度" 是属性值

2.4 多属性书写规则

多个属性之间必须用空格分隔,不可连写:

<!-- 正确写法 -->
<a href="#" title="链接说明" target="_blank">点击</a>

<!-- 错误写法(缺少空格分隔) -->
<a href="#"title="链接说明">点击</a>

2.5 属性的作用域

属性仅对具备该能力的标签生效。为不支持某属性的标签添加该属性,不会产生任何效果:

<!-- a 标签支持 href 属性,表现为超链接 -->
<a href="#">有效链接</a>

<!-- p 标签不支持 href 属性,添加后无效果 -->
<p href="#">无效属性</p>

三、标签对空白、换行、缩进不敏感

3.1 核心特性

HTML 标签与标签之间的空白、换行、缩进不会影响浏览器的加载效果。浏览器解析 HTML 时,仅识别标签的开始与结束标记及嵌套关系,不依赖源码的排版格式。

3.2 代码可读性 vs 生产环境

开发阶段:建议合理使用缩进和换行,提升代码可读性,便于团队协作与后期维护。

<!-- 可读性良好的代码 -->
<section>
    <h2>文章标题</h2>
    <p>文章内容段落一</p>
    <p>文章内容段落二</p>
</section>

生产阶段:常通过构建工具压缩 HTML,移除冗余空白以减小文件体积。

<!-- 压缩后的代码(功能等价,体积更小) -->
<section><h2>文章标题</h2><p>文章内容段落一</p><p>文章内容段落二</p></section>

四、空白折叠现象

4.1 现象定义

普通文本内容中,连续的空格、换行、制表符等空白字符,在浏览器渲染时会被自动折叠为单个空格显示。

4.2 示例验证

<!-- 源码中有多个空格和换行 -->
<p>你好    我是张三
    很高兴认识你</p>

<!-- 浏览器渲染结果为:你好 我是张三 很高兴认识你(空格被折叠为单个) -->

4.3 解决方案:字符实体 &nbsp;

当需要强制显示多个空格时,使用不间断空格字符实体

<!-- 使用 &nbsp; 强制显示三个空格 -->
<p>你好&nbsp;&nbsp;&nbsp;我是张三</p>

<!-- 渲染结果:你好   我是张三(三个空格) -->

&nbsp; 书写规范: - 必须以 & 开头 - 以 ; 结尾 - 中间为 nbsp(全小写)