# HTML 基础复习

HTML 基础

  • HTML 的作用 :HTML 表示网页的内容和结构。
  • HTML 元素 :元素是 HTML 文档的构建块。它们表示标题、段落、链接、图像等。大多数 HTML 元素由一个起始标签 <elementName> 和一个结束标签 </elementName> 组成。
    以下是基本语法:

以下是基本语法:

<elementName>Content goes here</elementName>

空元素 :空元素不能包含任何内容,只能有开始标签。示例包括 imgmeta 元素。

<img>
<meta>

在某些代码库中常见在空元素内包含一个正斜杠 / 。这两种写法都是可接受的:

<img>
<img/>

属性 :属性是放在 HTML 元素起始标签内的一个值。属性为元素提供额外信息或指定元素应如何表现。属性的基本语法如下:

<element attribute="value"></element>

布尔属性是一种在 HTML 标签中可以存在或不存在的属性。如果存在,其值为 true ,否则为 false 。布尔属性的例子包括 disabledreadonlyrequired

注释 :注释用于在代码中为自己或其他开发者留下说明。以下是 HTML 注释的语法:

<!--This is an HTML comment.-->

# 常见的 HTML 元素

标题元素 :HTML 中有六个标题元素。 h1h6 标题元素用于表示其下方内容的重要性。数字越小,重要性越高,因此 h2 元素的重要性低于 h1 元素。

<h1>most important heading element</h1>
<h2>second most important heading element</h2>
<h3>third most important heading element</h3>
<h4>fourth most important heading element</h4>
<h5>fifth most important heading element</h5>
<h6>least important heading element</h6>

段落元素 :用于网页中的段落。

<p>This is a paragraph element.</p>

img 元素 : img 元素用于向网页添加图像。 src 属性用于指定该图像的位置。对于图像元素,最好包含另一个名为 alt 的属性。下面是一个同时包含 srcalt 属性的 img 元素示例:

<img src="https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg" alt="A slice of lasagna on a plate.">

body 元素 :此元素用于表示 HTML 文档的内容。

<body>
    <h1>CatPhotoApp</h1>
    <p>This is a paragraph element.</p>
</body>

section 元素 :此元素用于将内容划分为更小的部分。

<section>
    <h2>About Me</h2>
    <p>Hi, I am Jane Doe and I am a web developer.</p>
</section>

div 元素 :该元素是一个通用的 HTML 元素,不包含任何语义信息。它用作通用容器以承载其他 HTML 元素。

<div>
    <h1>I am a heading</h1>
    <p>I am a paragraph</p>
</div>

锚点 a 元素 :这些元素用于在网页上创建链接。 href 属性用于指定用户点击链接时应跳转到的位置。

<a href="https://cdn.freecodecamp.org/curriculum/cat-photo-app/running-cats.jpg">cute cats</a>

无序 ul 和有序 ol 列表元素 :要创建带项目符号的项目列表,应使用 ul 元素,并在其内部嵌套一个或多个 li 元素,如下所示:

<ul>
    <li>catnip</li>
    <li>laser pointers</li>
    <li>lasagna</li>
</ul>

要创建有序的项目列表,应使用 ol 元素:

<ol>
    <li>flea treatment</li>
    <li>thunder</li>
    <li>other cats</li>
</ol>

强调 em 元素 :用于对一段文本施加强调。

<p>Cats <em>love</em> lasagna.</p>

重要强调 strong 元素 :此元素用于对文本施加强烈强调,以表示紧迫性和严重性。

<p>
    <strong>Important:</strong> Before proceeding, make sure to wear your safety goggles. 
</p>

figurefigcaption 元素 : figure 元素用于对图像和图表等内容进行分组。 figcaption 元素用于在 figure 元素内表示该内容的说明文字。

<figure>
    <img src="https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg" alt="Two tabby kittens sleeping together on a couch.">
    <figcaption>Cats <strong>hate</strong> other cats.</figcaption>  
</figure>

main 元素 :该元素用于表示网页的主要内容。
footer 元素 :该元素放置在 HTML 文档的底部,通常包含版权信息和其他重要页面链接。

<footer>
    <p>
        No Copyright - <a href="https://www.freecodecamp.org">freeCodeCamp.org</a>
    </p>
</footer>

# 标识符与分组

ID:HTML 元素的唯一标识符。ID 名称在每个 HTML 文档中只能使用一次。

<h1 id="title">Movie Review Page</h1>

ID 名称不能包含空格。如果你的 ID 名称由多个单词组成,可以在单词之间使用连字符,像这样:

<div id="red-box"></div>

类(Classes):类用于将元素分组以便进行样式和行为处理。

<div class="box"></div>

与 ID 不同,您可以在整个 HTML 文档中重复使用相同的 class 名称。 class 的值也可以包含空格,例如:

<div class="box red-box"></div>
<div class="box blue-box"></div>

# 特殊字符与链接

HTML 实体 :HTML 实体或字符引用是一组用于表示 HTML 中保留字符的字符。示例包括和号 &amp; 符号和小于号 &lt;

<p>This is an &lt;img /&gt; element</p>

link 元素 :此元素用于链接到外部资源,如样式表和站点图标。以下是用于外部 CSS 文件的 link 元素的基本语法:

<link rel="stylesheet" href="./styles.css" />

rel 属性用于指定被链接资源与 HTML 文档之间的关系。 href 属性用于指定外部资源的 URL 位置。

script 元素 :此元素用于嵌入可执行代码。

<body>
    <script>
        alert("Welcome to freeCodeCamp");
    </script>
</body>

尽管技术上可以将所有 JavaScript 代码写在 script 标签内,但更好的做法是链接到外部 JavaScript 文件。下面是一个使用 script 元素链接到外部 JavaScript 文件的示例:

<script src="path-to-javascript-file.js"></script>

src 属性在此用于指定该外部 JavaScript 文件的位置。

# 模板和编码

HTML 样板 :这是包含每个 HTML 文档所需的基本结构和必要元素的样板。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>freeCodeCamp</title>
        <link rel="stylesheet" href="./styles.css" />
    </head>
    <body>
        <!--Headings, paragraphs, images, etc. go inside here-->
    </body>
</html>
  • DOCTYPE :用于告知浏览器您正在使用哪个版本的 HTML。
  • html 元素 :表示 HTML 文档的顶层元素或根元素。要为文档指定语言,应使用 lang 属性。
  • head 元素 :head 部分包含重要的元数据,这些是在浏览器和搜索引擎所需的后台信息。
  • meta 元素 :这些元素表示站点的元数据。它们包含诸如字符编码、以及像 Twitter 这样的站点应如何预览您页面链接等详细信息。
  • title 元素 :该元素用于设置显示在浏览器标签或窗口中的文本。
  • UTF-8 字符编码 :UTF-8,即 UCS 转换格式 8,是一种在网络上广泛使用的标准化字符编码。字符编码是计算机将字符作为数据存储的方法。 charset 属性用于在 meta 元素内将字符编码设置为 UTF-8。

# SEO 与社交分享

SEO:搜索引擎优化是一种优化网页的做法,旨在提高其在搜索引擎上的可见性并获得更高的排名。
Meta description 元素 :用于为网页提供简短描述并影响 SEO。

<meta
    name="description"
    content="Discover expert tips and techniques for gardening in small spaces, choosing the right plants, and maintaining a thriving garden."
/>

Open Graph 标签 :开放图谱协议使您能够控制网站内容在各种社交媒体平台(例如 Facebook、LinkedIn 等)上的显示方式。
通过设置这些 Open Graph 属性,您可以吸引用户点击并与您的内容互动。您可以通过在 HTML 的 head 部分内的一组 meta 元素来设置这些属性。

og:title 属性 :用于设置在社交媒体帖子中显示的标题。

<meta content="freeCodeCamp.org" property="og:title" />

og:type 属性 :type 属性用于表示在社交媒体上共享的内容类型。此类内容的示例包括文章、网站、视频或音乐。

<meta property="og:type" content="website" />

og:image 属性 :用于设置在社交媒体帖子中显示的图片。

<meta
    content="https://cdn.freecodecamp.org/platform/universal/fcc_meta_1920X1080-indigo.png"
    property="og:image"
/>

og:url 属性 :用于设置社交媒体帖子中用户点击的 URL。

<meta property="og:url" content="https://www.freecodecamp.org" />

# 媒体元素与优化

替换元素 :替换元素是其内容由外部资源决定而非由 CSS 本身决定的元素。一个例子是 iframe 元素。 iframe 代表内联框架(inline frame)。它是一个内联元素,用于在 HTML 页面中直接嵌入其他 HTML 内容。

<iframe src="https://www.example.com" title="Example Site"></iframe>

您可以包含 allowfullscreen 属性,允许用户将 iframe 以全屏模式显示。

<iframe
    src="video-url"
    width="width-value"
    height="height-value"
    allowfullscreen
></iframe>

要在 iframe 中嵌入视频,您可以直接从 YouTube、Vimeo 等流行视频服务复制,或通过将 src 属性指向该视频的 URL 来自行定义。下面是一个从 YouTube 嵌入 freeCodeCamp 热门课程的示例:

<h1>A freeCodeCamp YouTube Video Embedded with the iframe Element</h1>
<iframe
    width="560"
    height="315"
    src="https://www.youtube.com/embed/PkZNo7MFNFg?si=-UBVIUNM3csdeiWF"
    title="YouTube video player"
    allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
    referrerpolicy="strict-origin-when-cross-origin"
    allowfullscreen
></iframe>

还有一些其他的替换元素,例如 videoembed 。有些元素在特定情况下也会表现为替换元素。以下是一个将 type 属性设置为 imageinput 元素示例:

<input type="image" alt="Descriptive text goes here" src="example-img-url">

优化媒体 :在网页中使用媒体(如图像)时,有三项工具需要考虑:尺寸、格式和压缩。压缩算法用于减小文件或数据的体积。
图像格式 :两种最常见的文件格式是 PNG 和 JPG,但它们已不再是提供图像的最佳格式。除非需要支持较旧的浏览器,否则应考虑使用更优化的格式,如 WEBP 或 AVIF。
图片许可 :处于公有领域的图像不附带版权,可以无限制地使用。特别以 Creative Commons 0 许可证授权的图像被视为公有领域。有些图像可能以宽松许可发布,例如 Creative Commons 许可证或 freeCodeCamp 使用的 BSD 许可证。
SVG:可缩放矢量图形(Scalable Vector Graphics)基于路径和方程来跟踪数据以绘制点、线和曲线。其真正含义是,像 SVG 这样的矢量图可以缩放到任意尺寸而不影响质量。

# 多媒体集成

audiovideo 元素 : audiovideo 元素允许你在 HTML 文档中添加音频和视频内容。 audio 元素支持常见的音频格式,如 mp3、wav 和 ogg。 video 元素支持 mp4、ogg 和 webm 格式。

<audio src="CrystalizeThatInnerChild.mp3"></audio>

如果你想在页面上看到音频播放器,可以添加带有 controls 属性的 audio 元素:

<audio src="CrystalizeThatInnerChild.mp3" controls></audio>

controls 属性使用户能够控制音频播放,包括调节音量、暂停或恢复播放。 controls 属性是一个布尔属性,可添加到元素以启用内置的播放控件。如果省略,则不会显示任何控件。

loop 属性 : loop 属性是一个布尔属性,使音频连续重播。

<audio
    src="https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"
    loop
    controls
></audio>

muted 属性 :当出现在 audio 元素中时,布尔属性 muted 会使音频以静音状态开始播放。

<audio
    src="https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"
    loop
    controls
    muted
></audio>

source 元素 :对于音频文件类型,不同浏览器对各类型的支持存在差异。为适应这种情况,你可以在 audio 元素内使用多个 source 元素,浏览器会选择第一个其能识别的来源。下面是为 audio 元素使用多个 source 元素的示例:

<audio controls>
    <source src="audio.ogg" type="audio/ogg" />
    <source src="audio.wav" type="audio/wav" />
    <source src="audio.mp3" type="audio/mpeg" />
</audio>

到目前为止我们学到的所有属性也都适用于 video 元素。下面是一个使用了 loopcontrolsmuted 属性的 video 元素示例:

<video
    src="https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4"
    loop
    controls
    muted
></video>

poster 属性 :如果你想在视频下载时显示一张图片,可以使用 poster 属性。此属性不适用于 audio 元素,仅适用于 video 元素。

<video
    src="https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4"
    loop
    controls
    muted
    poster="https://peach.blender.org/wp-content/uploads/title_anouncement.jpg?x11217"
    width="620"
></video>

# 目标属性类型

target 属性 :此属性告诉浏览器在何处打开锚点元素的 URL。该属性有四个重要的可能值: _self_blank_parent_top 。还有第五个值,称为 _unfencedTop ,目前用于实验性的 FencedFrame API。你现在大概还不需要使用它。
_self 值 :这是 target 属性的默认值。它在当前浏览上下文中打开链接。在大多数情况下,这将是当前标签页或窗口。

<a href="https://freecodecamp.org" target="_self">Visit freeCodeCamp</a>

_blank 值 :在新的浏览上下文中打开链接。通常这会在新标签页中打开,但有些用户可能将浏览器配置为改为在新窗口中打开。

<a href="https://freecodecamp.org" target="_blank">Visit freeCodeCamp</a>

_parent 值 :在当前上下文的父级中打开链接。例如,如果你的网站包含一个 iframe,则该 iframe 中的 _parent 值会在你网站所在的标签 / 窗口中打开,而不是在嵌入的框架内打开。

<a href="https://freecodecamp.org" target="_parent">Visit freeCodeCamp</a>

_top 值 :在最顶层的浏览上下文中打开链接 —— 可以理解为 “父的父级”。这与 _parent 类似,但无论嵌套多少层嵌入框架,链接都会始终在完整的浏览器标签 / 窗口中打开。

<a href="https://freecodecamp.org" target="_top">Visit freeCodeCamp</a>

# 绝对路径 vs 相对路径

路径定义 :路径是一个字符串,用于指定文件系统中某个文件或目录的位置。在网页开发中,路径让开发者能够链接到资源,例如图像、样式表、脚本和其他网页。
路径语法 :有三种关键语法需要了解。第一个是斜杠,根据你的操作系统可以是反斜杠 \ 或正斜杠 / 。第二个是单点 . 。最后是双点 .. 。斜杠被称为 “路径分隔符”,用于表示文件夹或文件名之间的分隔。单点表示当前目录,两个点表示父目录。
示例代码

public/index.html
./favicon.ico
../src/index.css

绝对路径 :绝对路径是指向资源的完整链接。它从根目录开始,包含每一级子目录,最后是文件名和扩展名。“根目录” 指的是层级结构中的顶级目录或文件夹。绝对路径还包含协议 —— 可能是 httphttpsfile —— 以及当资源位于网络上时的域名。下面是一个链接到 freeCodeCamp 徽标的绝对路径示例:
示例代码

<a href="https://design-style-guide.freecodecamp.org/img/fcc_secondary_small.svg">
    View fCC Logo
</a>

相对路径 :相对路径指定文件相对于当前文件所在目录的位置。它不包含协议或域名,因此在同一网站内部链接时更简短、更灵活。下面是一个示例,展示如何从位于同一文件夹中的 contact.html 页面链接到 about.html 页面:

<p>
    Read more on the
    <a href="about.html">About Page</a>
</p>

# 链接状态

:link :这是默认状态。该状态表示用户尚未访问、点击或与之交互的链接。你可以把此状态视为为页面上所有链接提供基础样式。其他状态都在此基础上扩展。
:visited :当用户已访问被链接到的页面时应用此状态。默认情况下,这会将链接变为紫色 —— 但你可以使用 CSS 为用户提供不同的视觉提示。
:hover :当用户将光标悬停在链接上时应用此状态。此状态有助于为链接提供额外的注意力,以确保用户确实打算点击它。
:focus :当链接获得焦点时应用此状态。
:active :此状态适用于正在被用户激活的链接。通常指在大多数情况下通过主鼠标按钮(左键)点击该链接来激活。