3. 网页开发工具
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>我利用vs code创建的第一个页面</title>
</head>
<body>
写代码是一件非常快乐的事情
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>我利用vs code创建的第一个页面</title>
</head>
<body>
写代码是一件非常快乐的事情
</body>
</html>
每个网页都会有一个基本的结构标签(也被称为骨架标签),页面内容也是在这些基本标签上书写。
HTML页面也被称为HTML文档。
<html>
<head>
<title>我的第一个页面</title>
</head>
<body>
键盘敲烂,月薪过万
</body>
</html>
| 标签名 | 定义 | 说明 |
| <html></html> | HTML标签 | 页面中最大的标签,我们 称为 根标签 |
| <head></head> | 文档的头部 | 注意在head标签中我们必须要设置的标签是title |
| <title></title> | 文档的标题 | 让页面拥有一个属于自己的网页标题 |
| <body></body> | 文档的主体 | 元素包含文档的所有内容,基本都是放到body里面的。 |

目标
目录:
1.1 HTML语法规范
01-HTML语法规范.html
<html>
<head> </head>
<body> </body>
</html>
<br />
1.2 标签关系
双标签关系可以分为两类,包含关系和并列关系
包含关系:
<head>
<title> </title>
</head>
并列关系:
<head> </head>
<body> </body>
Web标准时由W3C组织和其他标准化组织制定的一系列标准的集合。W3C(万维网联盟)是国际最著名的标准化组织。
接下来围绕web标准,我们学习以下两点:
3.1 为什么需要web标准?
浏览器不太,他们展示页面或排版就有些许差异。

3.2 Web标准的构成
主要包括结构(Structure)、表现(Presentation)和行为(Behavior)三个方面。
| 标准 | 说明 |
| 结构 | 结构用于对网页元素进行整理和分类,现阶段主要学的是html |
| 表现 | 表现用于设置网页元素的版式、颜色、大小等外观样式,主要指的是css |
| 行为 | 行为是指网页模型的定义及交互的编写,现阶段主要学的是javascript |
Web标准提出的最佳体验方案:结构、样式、行为相分离。
简单理解:结构写到HTML文件中,表现写到CSS文件中,行为写到javascript文件中。


网页时通过浏览器显示、运行的平台。常用的浏览器有IE、火狐(Firefox)、谷歌(Chrome)、Safari和Opera等。平时称为五大浏览器。
浏览器内核:

浏览器内核(渲染引擎):负责读取网页内容,整理讯息,计算网页的显示方式并显示页面。
1.1什么是网页?
网站是指因特网根据一定的规则,使用HTMl等制作的用于展示特定内容相关的网页集合。
网页是网站中的一“页”,通常是HTML格式的文件,它要通过浏览器来阅读。
网页是构成网站的基本元素,它通常由图片、链接、文字、声音、视频等元素组成。通常我们看到的网页,常见以.htm或.html后缀结尾的文件,因此将其俗称为HTML文件。
1.2什么是HTMl
HTML指的是超文本标记语言(Hyper Text Markup Language),它是用来描述网页的一种语言。
HTML不是一种编程语言,而是一种标记语言(markup language)。
标记语言是一套标记标签(markup language)
示例:
<img src="logo.png">
所谓超文本,有2层含义:
1.3 网页的形成
网页时由网页元素组成的,这些元素是利用html标签描述出来,然后通过浏览器解析来显示给用户的。
网页总结:
网页是图片、链接、文字、声音、视频等元素组成,其实就是一个html文件(后缀名为html)
网页生成制作,有前端人员书写html文件,然后浏览器打开,就能看到了网页。
HTML:超文本标记语言,用来制作网页的一门语言,有标签组成的,比如图片标签、链接标签、视频标签等…

基础学习路线
目的:精通网页布局,为后面学习javascript打下基础。
HTML5基础
目的:学习网页制作实际开发流程规范。
HTML(HyperText Markup Language,超文本标记语言)是一种用来告知浏览器如何组织页面的标记语言。HTML 可复杂、可简单,一切取决于 web 开发者。HTML 由一系列的元素组成,这些元素可以用来包围或标记不同部分的内容,使其以某种方式呈现或者工作。两端的标签可以使内容变成超链接,以连接到另一个页面;使字体表现为斜体等。例如,考虑如下内容:
My cat is very grumpy
如果我们想要将这行文字单独呈现,可以将这行文字封装成一个段落(Paragraph)<p> 元素:
htmlCopy to Clipboard
<p>My cat is very grumpy</p>
备注: HTML 标签不区分大小写。也就是说,输入标签时既可以使用大写字母也可以使用小写字母。例如,标签 <title> 可以写作 <title>、<TITLE>、<Title>、<TiTlE> 等,也都可以正常工作。不过,从一致性、可读性来说,最好仅使用小写字母。
让我们进一步探讨我们的前述的段落元素:

这个元素的主要部分有:
整个元素即指开始标签、内容、结束标签三部分组成的整体。
在下方可编辑代码区域编辑文本,使用标签 <em> 和 </em> 来包裹它。在前面放置 <em> 以打开元素,在后面放置 </em> 以关闭元素。这样编辑使得行内容变成斜体强调!你可以在实时输出区域中查看更新。
如果写错了,可随时按重置按钮重新开始,如果实在想不出来,可按显示答案按钮查看答案。
你也可以把元素放到其他元素之中——这被称作嵌套。如果我们想要表明我们的小猫脾气很暴躁,可以将 very 一词嵌套在 <strong> 元素中,意味着这个单词被着重强调:
htmlCopy to Clipboard
<p>My cat is <strong>very</strong> grumpy.</p>
你需要确保元素被正确的嵌套:在上面的例子中我们先打开 p 元素,然后才打开 strong 元素,因此必须先将 strong 元素关闭,然后再去关闭 p 元素。下面的例子是错误的:
htmlCopy to Clipboard
<p>My cat is <strong>very grumpy.</p></strong>
所有的元素都需要正确的打开和关闭,这样才能按你所想的方式展现。由于上述示例中的那种重叠,浏览器不得不猜测你的意图。这种猜测可能会导致意想不到的结果。
在 HTML 中有两种你需要知道的重要元素类别,块级元素和内联元素。
<a> 元素创建一个超链接,<em> 和 <strong> 等元素创建强调。考虑如下示例:
htmlCopy to Clipboardplay
<em>第一</em><em>第二</em><em>第三</em>
<p>第四</p>
<p>第五</p>
<p>第六</p>
<em> 是一个内联元素,所以就像你在下方可以看到的,第一行代码中的三个元素都没有间隙的展示在了同一行。而 <p> 是一个块级元素,所以第二行代码中的每个 p 元素分别都另起了新的一行展现,并且每个段落间都有一些间隔(这是因为默认的浏览器有着展示 <p> 元素的默认 CSS 样式)。
备注: HTML5 重新定义了元素的类别:见元素内容分类。尽管这些新的定义更精确,但却比上述的“块级元素”和“内联元素”更难理解,因此在之后的讨论中仍使用旧的定义。
备注: 在这篇文章中提到的“块”和“内联”,不应该与 CSS 盒子的类型中的同名术语相混淆。尽管它们默认是相关的,但改变 CSS 显示类型并不会改变元素的分类,也不会影响它可以包含和被包含于哪些元素。防止这种混淆也是 HTML5 摒弃这些术语的原因之一。
备注: 你可以查阅包含了块级元素和内联元素列表的参考页面。参见块级元素和内联元素页面。
不是所有元素都拥有开始标签、内容和结束标签。一些元素只有一个标签,通常用来在此元素所在位置插入/嵌入一些东西。这些元素被称为空元素。例如:元素 <img> 是用来在页面插入一张指定的图片。
htmlCopy to Clipboardplay
<img
src="https://roy-tian.github.io/learning-area/extras/getting-started-web/beginner-html-site/images/firefox-icon.png"
alt="Firefox 图标" />
显示如下:
备注: HTML 中,无需在一个空元素的标签末尾添加 /,例如 <img src="images/cat.jpg" alt="cat" />。然而,这也是一种有效的语法,当你希望你的 HTML 是有效的 XML 时,这么做也没问题。
元素也可以拥有属性,属性看起来像这样:

属性包含元素的额外信息,这些信息不会出现在实际的内容中。在上述例子中,这个 class 属性是一个识别名称,以后为元素设置样式信息时更加方便。
属性必须包含:
另一个例子是关于元素 <a> 的——元素 <a> 是锚,它使被标签包裹的内容成为一个超链接。锚元素可以添加多种属性,部分如下:href
这个属性声明超链接的 web 地址。例如 href="https://www.mozilla.org/"。title
title 属性为超链接声明额外的信息,比如你将链接至的那个页面。例如 title="The Mozilla homepage"。当鼠标悬停在超链接上面时,这部分信息将以工具提示的形式显示。target
target 属性用于指定链接如何呈现出来。例如,target="_blank" 将在新标签页中显示链接。如果你希望在当前标签页显示链接,忽略这个属性即可。
编辑下面的文本框中的内容,使之变成指向任一个你喜欢的 web 地址的链接。
<a> 元素。href 属性和 title 属性。target 属性,使得点击链接时在新标签页打开。你可以在实时输出区域看到你修改的内容。你应该可以看到一个链接,当鼠标移上此链接时会显示 title 属性值,当点击此链接时会跳转到 href 属性指定的 web 地址。记住:在元素名和属性名之间以及两个属性之间要有一个空格。
如果写错了,可随时按重置按钮重新开始,如果实在想不出来,可按显示答案按钮查看答案。
有时你会看到没有值的属性,这也是完全可以接受的。这些属性被称为布尔属性。布尔属性只能有一个值,这个值一般与属性名称相同。例如,考虑 disabled 属性,你可以将其分配给表单输入元素。用它来禁用表单输入元素,这样用户就不能输入了。被禁用的元素通常有一个灰色的外观。示例如下:
htmlCopy to Clipboardplay
<input type="text" disabled="disabled" />
方便起见,我们完全可以将其写成以下形式:
htmlCopy to Clipboardplay
<!-- 使用 disabled 属性来防止终端用户输入文本到输入框中 -->
<input type="text" disabled />
<!-- 下面这个输入框不包含 disabled 属性,所以用户可以向其中输入 -->
<input type="text" />
作为参考,上面的例子还包括一个非禁用的表单输入元素。上面两段 HTML 代码产生的效果如下:
如果你看了很多其他网站的代码,你可能会遇到一些奇怪的标记风格,包括没有引号的属性值。在某些情况下它是被允许的,但是其他情况下会破坏你的标记。例如,针对之前的链接示例,我们可以像这样写一个只拥有一个 href 属性的版本:
htmlCopy to Clipboardplay
<a href=https://www.mozilla.org/>favorite website</a>
然而,当我们再添加一个 title 属性时,就会出现问题:
htmlCopy to Clipboardplay
<a href=https://www.mozilla.org/ title=The Mozilla homepage>favorite website</a>
此时浏览器会误解你的标记,它会把 title 属性理解为三个属性——title 的属性值为 The,另外还有两个布尔属性 Mozilla 和 homepage,很明显不是我们所期望的!并且在这个编码里面它会报错或者出现异常行为。试一试把鼠标移动到链接上,看会显示什么 title 文字!
我们建议始终添加引号——这样可以避免很多问题,并且使代码更易读。
在目前为止,本章内容所有的属性都是由双引号来包裹。然而,你也许在一些 HTML 中也见过单引号。这只是风格的问题,你可以从中选择一个你喜欢的。以下两种情况都可以:
htmlCopy to Clipboard
<a href='https://www.example.com'>示例站点链接</a>
<a href="https://www.example.com">示例站点链接</a>
但应该注意单引号和双引号不能在一个属性值里面混用。下面的语法是错误的:
htmlCopy to Clipboard
<a href="https://www.example.com'>示例站点链接</a>
在一个 HTML 中已使用一种引号,你可以在此引号中嵌套另外一种引号:
htmlCopy to Clipboard
<a href="https://www.example.com" title="你觉得'好玩吗'?">示例站点链接</a>
如果你想将英文引号(单引号或双引号)当作文本显示在 html 中,你就必须使用 HTML 实体引用。像这样的代码就会破坏显示:
htmlCopy to Clipboard
<a href='https://www.example.com' title='Isn't this fun?'>示例站点链接</a>
要这样做:
htmlCopy to Clipboard
<a href="https://www.example.com" title="Isn't this fun?">示例站点链接</a>
单独的 HTML 元素本身并不十分有用。接下来,我们来看看单个元素是如何组合成整个 HTML 页面的:
htmlCopy to Clipboard
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<title>我的测试站点</title>
</head>
<body>
<p>这是我的页面</p>
</body>
</html>
这里我们有:
<!DOCTYPE html>: 声明文档类型。早期的 HTML(大约 1991-1992 年)文档类型声明类似于链接,规定了 HTML 页面必须遵从的良好规则,能自动检测错误和其他有用的东西。文档类型使用类似于这样:htmlCopy to Clipboard<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 文档类型是一个历史遗留问题,需要包含它才能使其他东西正常工作。现在,只需要知道 <!DOCTYPE html> 是最短的有效文档声明!<html></html>: <html> 元素。这个元素包裹了页面中所有的内容,有时被称为根元素。<head></head>: <head> 元素。这个元素是一个容器,它包含了所有你想包含在 HTML 页面中但不在 HTML 页面中显示的内容。这些内容包括你想在搜索结果中出现的关键字和页面描述、CSS 样式、字符集声明等等。以后的章节中会学到更多相关的内容。<meta charset="utf-8">: <meta> 元素。这个元素代表了不能由其他 HTML 元相关元素表示的元数据,比如 <base>、<link>、<script>、<style> 或 <title>。charset 属性将你的文档的字符集设置为 UTF-8,其中包括绝大多数人类书面语言的大多数字符。有了这个设置,页面现在可以处理它可能包含的任何文本内容。没有理由不对它进行设置,它可以帮助避免以后的一些问题。<title></title>: <title> 元素。这设置了页面的标题,也就是出现在该页面加载的浏览器标签中的内容。当页面被加入书签时,页面标题也被用来描述该页面。<body></body>: <body> 元素。包含了你访问页面时所有显示在页面上的内容,包含文本、图片、视频、游戏、可播放音频轨道等等。如果你想在你的本地练习写一些 HTML 页面,你可以这样做:
index.html。备注: 可在 MDN 学习区代码仓库 上查看该示例。
你可以打开浏览器看看这段代码的效果是什么样的,然后改变代码刷新浏览器看看新的结果。最开始的代码是这样的效果:
在这个练习中,你可以在电脑上本地编辑代码,如前所述,也可以在下面的样本窗口中编辑(在这种情况下,可编辑的样本窗口只代表 <body> 元素的内容)。通过执行以下任务来磨练你的技能:
<body> 元素开始标签下方,为这个文档添加一个主标题。这个主标题应该被包含在 <h1> 开始标签和 </h1> 结束标签之间。<strong> 和结束标记 </strong> 之间可以使他们以粗体显示。如果写错了,可随时按重置按钮重新开始,如果实在想不出来,可按显示答案按钮查看答案。
在上面的例子中,你可能已经注意到了在代码中包含了很多的空格——这是没有必要的;下面的两个代码片段是等价的:
htmlCopy to Clipboard
<p>狗 狗 很 呆 萌。</p>
<p>狗 狗 很
呆 萌。</p>
无论你在 HTML 元素的内容中使用多少空格(包括一个或多个空白字符或换行),当渲染这些代码的时候,HTML 解释器会将连续出现的空白字符减少为一个单独的空格符。
如果你的代码有很好的格式化,就会更容易理解你的代码中发生了什么。在我们的 HTML 中,每个嵌套元素都比它所在的元素多缩进了两个空格。你可以选择格式化的风格(例如,每一级缩进多少个空格),但你至少应该考虑格式化。
在 HTML 中,字符 <、>、"、' 和 & 是特殊字符。它们是 HTML 语法自身的一部分,那么你如何将这些字符包含进你的文本中呢,比如说如果你真的想要在文本中使用符号 & 或者小于号,而不想让它们被浏览器视为代码并被解释?
我们必须使用字符引用——表示字符的特殊编码,它们可以在那些情况下使用。每个字符引用以符号 & 开始,以分号(;)结束。
| 原义字符 | 等价字符引用 |
|---|---|
| < | < |
| > | > |
| “ | " |
| ‘ | ' |
| & | & |
等价字符引用可以很容易记住,因为它使用的文本可以被看作是小于“<”,引号是“"”,其他的也是如此。要找到更多关于实体引用的信息,请参见 XML 和 HTML 字符实体引用列表(维基百科)。
在下面的示例中,有两个自然段:
htmlCopy to Clipboardplay
<p>HTML 中用 <p> 来定义段落元素。</p>
<p>HTML 中用 <p> 来定义段落元素</p>
在下面的实时输出中,你会看到第一段是错误的,因为浏览器会认为第二个 <p> 是开始一个新的段落!第二段是正确的,因为我们用字符引用来代替了角括号(< 和 > 符号)。
备注: 不需要为任何其他符号使用实体引用,因为只要你的 HTML 的字符编码设置为 UTF-8,现代浏览器就能很好地处理实际符号。
HTML 拥有在代码中写注释的机制。浏览器会忽略注释,有效地使注释对用户来说不可见。注释的目的是让你在代码中加入注释,以解释你的逻辑或编码。如果你在离开很久后回到一个代码库,以至于你不能完全记住它,这就非常有用。同样,当不同的人在进行修改和更新时,注释也是非常宝贵的。
为了将一段 HTML 中的内容置为注释,你需要将其用特殊的记号 <!-- 和 --> 包裹起来,比如:
htmlCopy to Clipboardplay
<p>我在注释外!</p>
<!-- <p>我在注释内!</p> -->
正如你下面所见的那样,第一段出现在了实时输出中,但是第二段却没有。
你已经来到了这篇文章的结尾——希望你享受基础的 HTML 学习的旅程。
在这里你应该可以理解 HTML 语言的全貌和基本的工作原理。你应该还学会了一些元素和属性的使用。在这个模块的后续文章中,我们会深入一些你已经见过的东西的细节,并且展示语言的一些其他概念。
欢迎使用 WordPress。这是您的第一篇文章。编辑或删除它,然后开始写作吧!