1、HTML 概述

HTML(HyperText Markup Language)是一种用于创建网页的标准标记语言。它通过标签(tags)定义网页的结构和内容,浏览器解析这些标签后渲染出可视化的页面。HTML 是 Web 开发的基石,通常与 CSS 和 JavaScript 结合使用。

2、HTML 的基本结构

一个典型的 HTML 文档包含以下基本结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html lang="en"><!--英文-->
<head>
<meta charset="UTF-8">
<!--指定当前文档使用的字符编码为 UTF-8-->
<!--通用的 Unicode 编码格式,能支持多种语言字符(包括中文、日文、特殊符号等),确保网页内容正确显示而不会出现乱码-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--width=device-width 表示网页宽度与设备屏幕宽度一致。
initial-scale=1.0 表示初始缩放比例为 100%,避免移动端浏览器自动缩放页面。-->
<title>网页标题</title>
<!--该标题会显示在浏览器的标签页、搜索引擎结果页面(SERP)以及用户收藏网页时的默认名称中。----->
</head>
<body>
<!-- 网页内容 -->
</body>
</html>

  • <!DOCTYPE html> 声明文档类型为 HTML5。
  • <html> 是文档的根元素。
  • <head> 包含元数据(如字符集、标题等)。
  • <body> 包含网页的可见内容。

3、HTML 常用标签

文本标签

  • <h1><h6>:标题标签,<h1> 为最高级。
  • <p>:是 HTML 中定义段落的标签,用于将文本内容分段显示。
  • <span>:行内文本容器,通常用于样式控制。
  • <strong><b>:加粗文本。
  • <em><i>:斜体文本。
  • <br>:换行标签。

链接与图片

列表

  • <ul>:无序列表。
  • <ol>:有序列表。
  • <li>:列表项。

表格

1
2
3
4
5
6
7
8
9
10
11
<table>
<tr>
<th>表头1</th>
<th>表头2</th>
</tr>
<tr>
<td>数据1</td>
<td>数据2</td>
</tr>
</table>

  • <table>:定义表格。
  • <tr>:定义行。
  • <th>:定义表头单元格。
  • <td>:定义数据单元格。

表单

HTML 表单用于收集用户输入的数据,通常包含输入框、按钮、下拉菜单等交互元素。表单通过 <form> 标签定义,其核心属性包括 action(提交目标 URL)和 method(提交方式,如 GET 或 POST)。

1
2
3
4
5
6
7
<form action="/submit" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" name="name">
<!--name与后端相关-->
<input type="submit" value="提交">
</form>

  • <form>:定义表单。
  • <input>:输入字段,类型包括 textpasswordsubmit 等。
  • <label>:为输入字段添加标签。

HTML5 新特性

HTML5 引入了许多新元素和 API,例如:

HTML 与 CSS/JavaScript 的协作

  • CSS 用于控制网页的样式,通过 <link> 引入或直接在 <style> 标签中定义。
  • JavaScript 用于实现交互功能,通过 <script> 标签引入或直接编写。

HTML 开发工具

  • 文本编辑器:VS Code、Sublime Text、Atom 等。
  • 浏览器开发者工具:Chrome DevTools、Firefox Developer Tools。
  • 在线调试工具:CodePen、JSFiddle。

学习资源

  • MDN Web Docs(Mozilla Developer Network):权威的 HTML 文档。
  • W3Schools:适合初学者的教程。
  • HTML5 官方规范:深入了解 HTML5 标准。

通过掌握 HTML,可以构建结构化的网页内容,为后续学习 CSS 和 JavaScript 打下基础。

4、HTML 标签拓展

结构标签

  • <html>:定义整个HTML文档的根元素。
  • <head>:包含文档的元信息,如标题、字符集和引用的外部资源。
  • <body>:包含网页的可见内容,如文本、图片和链接。
  • <header>:定义文档或节的页眉。
  • <footer>:定义文档或节的页脚。
  • <nav>:定义导航链接的容器。
  • <section>:定义文档中的一个独立部分。
  • <article>:定义独立的自包含内容,如博客文章或新闻。
  • <div>:通用容器,用于样式化或脚本操作。

文本标签

  • <h1><h6>:定义标题,<h1> 是最高级标题。
  • <p>:定义段落。
  • <span>:内联容器,用于对文本的一部分进行样式化。
  • <strong>:定义重要文本,通常加粗显示。
  • <em>:定义强调文本,通常斜体显示。
  • <br>:插入换行。
  • <hr>:插入水平线。
  • <i>: 斜体文本。

链接与媒体标签

  • <a>:定义超链接,通过 href 属性指定目标URL。
  • <img>:嵌入图像,通过 src 属性指定图像路径。
  • <video>:嵌入视频内容。
  • <audio>:嵌入音频内容。
  • <iframe>:嵌入另一个网页或文档。

列表标签

  • <ul>:定义无序列表。
  • <ol>:定义有序列表。
  • <li>:定义列表项。
  • <dl>:定义描述列表。
  • <dt>:定义描述列表的术语。
  • <dd>:定义描述列表的描述。

表格标签

  • <table>:定义表格。
  • <tr>:定义表格行。
  • <th>:定义表头单元格。
  • <td>:定义表格数据单元格。
  • <caption>:定义表格标题。

表单标签

  • <form>:定义表单,用于收集用户输入。
  • <input>:定义输入控件,类型由 type 属性决定(如 textpasswordsubmit)。
  • <textarea>:定义多行文本输入。
  • <button>:定义可点击按钮。
  • <select>:定义下拉列表。
  • <option>:定义下拉列表中的选项。
  • <label>:定义表单控件的标签。

元信息标签

  • <meta>:提供文档的元信息,如字符集、视口设置。
  • <link>:链接外部资源,如CSS文件。
  • <script>:嵌入或引用JavaScript代码。
  • <style>:定义内部CSS样式。

语义标签

  • <main>:定义文档的主要内容。
  • <aside>:定义与周围内容相关但独立的内容。
  • <figure>:定义自包含内容,如图表或图片。
  • <figcaption>:定义 <figure> 的标题。
  • <time>:定义日期或时间。

这些标签是构建网页的基础,合理使用可以提高网页的结构化和可访问性。

5、HTML 常用全局属性

全局属性适用于所有 HTML 元素,以下是一些核心属性:

class
为元素指定一个或多个类名,用于 CSS 或 JavaScript 选择器。多个类名用空格分隔。

id
定义元素的唯一标识符,在同一文档中必须唯一。常用于 CSS 或 JavaScript 精准定位。

style
直接内联 CSS 样式,优先级高于外部样式表。例如:

1
2
<div style="color: red; font-size: 16px;">文本</div>

title
提供元素的额外信息,鼠标悬停时显示提示文本。常用于链接或按钮的说明。

data-*
自定义数据属性,存储与元素相关的私有数据。例如:

1
2
<button data-id="123">按钮</button>

hidden
布尔属性,设置元素不可见。等同于 style="display: none;"

lang
定义元素内容的语言代码,如 lang="en" 表示英语。

表单相关属性

name
表单控件的名称,用于提交数据时标识字段。

value
表单元素的初始值,如输入框、单选按钮等。

placeholder
输入框的提示文本,用户输入时消失。

required
布尔属性,强制用户在提交前填写字段。

disabled
禁用表单控件,阻止用户交互且数据不会被提交。

readonly
字段只读,用户无法修改但数据可提交。

链接与媒体属性

href
定义超链接的目标 URL 或锚点。

target
指定链接打开方式,如 _blank 表示新窗口。

src
嵌入外部资源的路径,如图片、脚本或 iframe。

alt
图片无法显示时的替代文本,对无障碍访问至关重要。

widthheight
设置元素的宽度和高度,单位默认为像素。

事件处理属性

onclick
点击元素时触发 JavaScript 代码。

onload
资源加载完成后触发,常用于图片或页面。

onmouseover
鼠标移入元素时触发。

onsubmit
表单提交时触发,可用于验证数据。

其他实用属性

contenteditable
允许用户编辑元素内容,如 contenteditable="true"

draggable
设置元素是否可拖拽,需配合拖拽 API 使用。

tabindex
控制元素通过 Tab 键聚焦的顺序,值为 0 或正整数。

aria-*
无障碍属性,增强屏幕阅读器的兼容性。例如 aria-label 提供元素描述。


以上属性可根据实际需求组合使用,灵活控制 HTML 元素的行为与表现。

6、HTML闭合与非闭合标签

HTML 闭合标签

闭合标签是 HTML 中需要明确结束标记的标签,通常由开始标签和结束标签组成,结束标签在标签名前添加斜杠 /。这类标签通常用于包裹内容或嵌套其他元素。

语法示例:

1
2
3
4
<p>这是一个段落。</p>
<div>这是一个 div 容器。</div>
<a href="#">这是一个链接</a>

常见闭合标签:

HTML 非闭合标签

非闭合标签(自闭合标签)不需要单独的结束标记,通常用于插入特定内容或元素,如图片、换行等。这类标签在 HTML5 中可以省略斜杠 /

语法示例:

1
2
3
4
<img src="image.jpg" alt="图片">
<br>
<input type="text">

常见非闭合标签:

区别与注意事项

  1. 内容包裹:闭合标签用于包裹内容,非闭合标签通常独立存在。
  2. 语法差异:闭合标签需成对出现,非闭合标签无需结束标记。
  3. 兼容性:在 HTML5 中,非闭合标签的斜杠 / 可省略(如 <br>),但在 XHTML 中必须保留(如 <br />)。

特殊情况

某些标签在 HTML5 中允许省略结束标签,但逻辑上仍属于闭合标签。例如:

  • <li>:下一个 <li></ul> 会隐式闭合前一个 <li>
  • <p>:遇到另一个块级元素时会自动闭合。

代码示例:

1
2
3
4
5
<ul>
<li>项目1
<li>项目2
</ul>

7、HTML 特殊字符的写法

在HTML中,某些字符具有特殊含义(如 <>&),或无法直接输入(如版权符号 ©)。这些字符需要使用**实体引用(Entity Reference)数字引用(Numeric Reference)**来表示。


常用特殊字符的实体引用

以下是一些常见的特殊字符及其对应的HTML实体写法:

  • 小于号 <: &lt;&#60;
  • 大于号 >: &gt;&#62;
  • 和号 &: &amp;&#38;
  • 双引号 ": &quot;&#34;
  • 单引号 ': &apos;&#39;
  • 空格(不间断空格): &nbsp;&#160;
  • 版权符号 ©: &copy;&#169;
  • 注册商标 ®: &reg;&#174;
  • 欧元符号 : &euro;&#8364;
  • 乘号 ×: &times;&#215;
  • 除号 ÷: &divide;&#247;

实体引用与数字引用的区别

  1. 实体引用(Named Entity)
    使用易记的名称表示字符,例如 &lt; 表示 <。适合常见的符号。
  2. 数字引用(Numeric Entity)
    使用 Unicode 码点表示字符,格式为 &#十进制;&#x十六进制;。例如 &#60;&#x3C; 均表示 <。适合名称未知的字符。

示例代码

1
2
3
4
<p>HTML 中需要转义的符号:< > &</p>
<p>版权符号:© 或 ©</p>
<p>特殊符号:€ × ÷</p>


注意事项

  • 直接在HTML中输入特殊字符(如 <&)可能导致解析错误,务必使用转义写法。
  • 实体名称区分大小写,例如 &lt; 正确,而 &LT; 无效。
  • 完整的HTML实体列表可参考 W3C官方文档MDN

8、HTML 注释的作用

HTML 注释用于在代码中添加说明或临时禁用部分代码,而不会影响页面显示。注释内容不会在浏览器中渲染,仅供开发者查看。

基本语法

HTML 注释以 <!-- 开始,以 --> 结束:

1
2
3
4
<!-- 这是一个注释 -->
<p>这段文字会显示。</p>
<!-- <p>这段文字不会显示。</p> -->

多行注释

注释可以跨越多行:

1
2
3
4
5
<!-- 
这是一个多行注释。
可以包含多行文本。
-->

条件注释(已废弃)

早期 IE 浏览器支持条件注释,但现代浏览器已废弃此功能:

1
2
3
4
<!--[if IE]>
这段代码仅适用于 IE 浏览器。
<![endif]-->

注释中的注意事项

  • 注释不能嵌套,否则会导致解析错误:
    1
    <!-- <!-- 嵌套注释会出错 --> -->  
  • 注释中避免使用 --,可能引发解析问题:
    1
    <!-- 避免使用 -- 符号 -->  

实用场景

  • 调试代码时临时禁用部分内容:
    1
    <!-- <div class="debug">调试内容</div> -->  
  • 标记代码区块用途:
    1
    2
    3
    <!-- 导航栏开始 -->  
    <nav>...</nav>
    <!-- 导航栏结束 -->

9、HTML 文档基本结构

HTML(超文本标记语言)的结构通常由以下几个核心部分组成:

1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html lang="en">
<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> 标签是所有其他 HTML 元素的容器,lang 属性指定文档的语言(如 en 表示英语)。

头部部分

<head> 元素包含文档的元数据(metadata),这些内容不会显示在页面上:

主体部分

<body> 元素包含所有可见的页面内容,如文本、图片、链接、表格等。这里是网页实际显示的部分。

常见内容元素

<body> 中常用的结构元素包括:

1
2
3
4
5
6
7
8
9
<header>页眉</header>
<nav>导航栏</nav>
<main>
<article>独立内容</article>
<section>内容区块</section>
</main>
<aside>侧边栏</aside>
<footer>页脚</footer>

注释

HTML 注释不会被浏览器显示,用于开发者做备注:

1
2
<!-- 这是注释内容 -->

完整示例

以下是包含基本语义化标签的完整 HTML5 结构示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>我的网页</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header>
<h1>网站标题</h1>
<nav>
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">关于</a></li>
</ul>
</nav>
</header>

<main>
<article>
<h2>文章标题</h2>
<p>文章内容...</p>
</article>
</main>

<footer>
<p>版权信息 © 2023</p>
</footer>

<script src="script.js"></script>
</body>
</html>

HTML 超链接跳转

HTML 超链接跳转是通过 <a> 标签实现的,主要用于页面间导航或锚点跳转。以下是常见用法和注意事项:

基本语法

1
2
<a href="目标URL">链接文本</a>

页面间跳转

1
2
3
4
5
6
<!-- 跳转到外部网站 -->
<a href="https://example.com">访问示例网站</a>

<!-- 跳转到本地文件 -->
<a href="about.html">关于我们</a>

锚点跳转(页面内跳转)

1
2
3
4
5
6
<!-- 定义锚点 -->
<h2 id="section1">第一部分</h2>

<!-- 跳转到锚点 -->
<a href="#section1">返回第一部分</a>

新窗口打开链接

1
2
<a href="https://example.com" target="_blank">在新窗口打开</a>

邮件链接

1
2
<a href="mailto:contact@example.com">发送邮件</a>

电话链接

1
2
<a href="tel:+123456789">拨打电话</a>

注意事项

  • 使用 target="_blank" 时建议添加 rel="noopener noreferrer" 防止安全漏洞
  • 锚点名称区分大小写
  • 外部链接建议使用完整的URL(包含 http://https://
  • 确保链接文本具有描述性,避免使用”点击这里”等模糊表述

HTML 锚链接基础

锚链接(Anchor Link)用于在同一页面或不同页面间跳转到指定位置。通过<a>标签的href属性结合id属性实现。

语法示例:

1
2
3
4
5
6
<!-- 定义锚点 -->
<h2 id="section1">第一部分</h2>

<!-- 创建跳转链接 -->
<a href="#section1">跳转到第一部分</a>

页面内跳转

通过#后接目标元素的id值实现页面内导航:

1
2
3
4
<a href="#footer">跳转到页脚</a>
...
<footer id="footer">这里是页脚内容</footer>

跨页面跳转

href中指定目标页面路径后接#和锚点ID:

1
2
<a href="anotherpage.html#section3">跳转到其他页面的第三节</a>

高级用法

返回顶部按钮:

1
2
<a href="#">返回顶部</a>

结合JavaScript动态锚点:

1
2
<button onclick="window.location.href='#contact'">联系我</button>

注意事项

  • 锚点ID需唯一且不含空格
  • 避免使用特殊字符作为ID
  • 跨页面锚点跳转需确保目标页面存在对应ID元素
  • 现代单页应用(SPA)通常使用路由替代传统锚点

浏览器兼容性

所有主流浏览器均支持标准锚链接,包括:

  • Chrome/Firefox/Safari
  • Edge/Opera
  • IE9及以上版本

HTML语义化标签概述

HTML语义化标签是指通过具有明确含义的标签描述内容结构,便于开发者、浏览器和辅助技术(如屏幕阅读器)理解页面内容。相比传统<div><span>,语义化标签能提升代码可读性、SEO效果及无障碍访问体验。


常用语义化标签分类

文档结构类

  • <header>:定义页眉或区块头部,通常包含标题、导航或logo。
  • <footer>:定义页脚或区块尾部,包含版权信息、联系方式等。
  • <main>:标识页面主内容区域,一个页面仅有一个。
  • <article>:表示独立可分发的内容(如博客文章、新闻)。
  • <section>:定义文档中的逻辑分区(如章节)。
  • <aside>:表示与主内容间接相关的部分(如侧边栏、广告)。

内容组织类

  • <nav>:定义导航链接集合(如菜单、目录)。
  • <figure><figcaption>:包裹图片/图表及其标题。
  • <time>:标注时间或日期,支持datetime属性机器可读。
  • <mark>:高亮显示文本(如搜索关键词)。
  • <blockquote>:引用长段落内容,常配合cite属性。

表单与表格类


语义化标签的优势

  • SEO友好:搜索引擎更易抓取关键内容。
  • 无障碍支持:辅助工具能准确解析页面结构。
  • 代码可维护性:清晰标签减少嵌套复杂度。
  • 未来兼容性:遵循HTML5标准,适配新特性。

通过合理组合语义化标签,可构建结构清晰、易于维护的HTML文档。

好了,今天的内容就分享到这,我们下期再见!


本文是转载文章,点击查看原文