网页基础
HTML 基本语法
HTML 全称 Hyper Text Markup Language,翻译过来是 超文本标记语言,是计算机语言的一种,由 元素 构成,用来结构化 Web 网页及其内容。
元素由三大部分组成:
1、开始标签:一对尖括号(即键盘上的小于号 <
和大于号 >
)中间包裹着元素名称;
2、元素内容:页面中用户可以看到的内容;
3、结束标签:与开始标签类似,区别在于元素名称前有一个斜杠 /
。
元素 是 HTML 文档基本组成部分,对应网页中某个区域及区域中内容。
元素的属性
元素的属性需要写在开始标签中,写成属性名称 = "属性值"形式。注意,HTML 中属性值两边必须为英文双引号。如果一个元素由多个属性,属性与属性之间需要用一个空格隔开。
举个栗子:
<a href="https://www.baidu.com/">百度</a>
href 是 属性名称
https://www.baidu.com/ 是 属性值
整个<a href="https://www.baidu.com/"> 是 开始标签
元素的属性属于额外信息,不会直接展示给我们用户,而是提供给浏览器、程序解析使用。每个元素可以设置什么样的属性,则是由元素类型决定的。比如 a 元素用于描述超链接,必须提供可跳转URL,因此它具有href
(hypertext reference,超文本引用)属性。而没有这项功能的元素,比如 p 元素、h 系列元素等,也就不具有 href
属性。
拓展:target
属性的值决定了当用户点击超链接时,跳转到指定 URL 的方式。target
属性默认值为 _self
,表示在当前页面打开链接。target
属性值为 _blank
,表示会在浏览器新标签页打开。
元素的共同属性,最常见的是class、id和style。
class
和 id
都是用来标识元素的。区别在于,class
用于标识某一类元素,在一份 HTML 文档中可以重复出现;而 id
用于标识具体的某一个元素,其值在整个 HTML 文档中是 唯一 的。你可以理解为:整个 HTML 文档是一所学校,class
是元素所在班级,id
是元素的学号。班级里可以有很多的人,但学号是全学校唯一的。
style
属性则能够为元素设置样式,相当于在 HTML 中内嵌了一部分 CSS 代码。
HTML 中用 img(image)元素 来描述图片。img 元素有两个特殊属性,一个是 src
(source)图片来源属性,值是图片资源对应的 URL;另一个是 alt
(alternative text,用于替换的文本)属性。
<img src="..." alt="">
alt
属性功能比较特殊。当用户因为某些原因无法查看图片,比如网络连接速度慢、src
属性或属性值出现错误,或者用户正在使用屏幕阅读器时,浏览器会读取 alt
属性值,作为图片内容的替代信息展示给用户。并且 alt
的值可以为空,此时将由提供网页的服务器决定如何处理图片失效问题。
空元素
img
元素和我们之前学习的元素相比,还有一个特征——它只有开始标签,连元素内容都没有。这是因为,有些元素并不需要提供文本内容,自然不需要元素内容。既然没有元素内容,索性连用于包裹内容的结束标签都不需要了。这类只有开始标签的元素叫做 空元素。
提示:
中的 amp;
表示转义,类似于 Python 字符串中的转义符号 \
。你可以尝试一下删除 amp;
,看看此时浏览器的渲染结果是什么样子。
举个栗子
<p>空格<code>&nbsp;</code>符号</p>
在 p 元素中间 嵌套 了一个 code 元素。code 元素顾名思义,是用来描述代码的。浏览器在渲染时会默认选择一套代码专用字体,让代码内容看起来更像代码。
元素的嵌套
元素间虽然可以嵌套,但每个元素都 必须正确地开始和结束。比如上面的例子中,外层元素是 p 元素,内层元素是 code 元素,因此标签的书写顺序是:<p>
开始标签 → <code>
开始标签 → </code>
结束标签 → </p>
结束标签。
序列
有序列表由外层 ol(ordered lists,有序列表)元素 和内层 li(list item,列表项)元素 构成。每个 li 元素的内容对应着有序列表中的一条子项目。并且 li 元素的开始标签、元素内容中都是不含数字标号信息的,浏览器会帮我们自动按顺序标号:
<ol>
<li>项目</li>
</ol>
无序列表则是由外层 ul(unordered lists,无序列表)元素 和内层 li 元素构成的。渲染无序列表时,浏览器会帮我们在每个 li 元素项目前面加上圆形的项目符号:
<ul>
<li>项目</li>
</ul>
HTML 文档结构
从网页内容第一行看起。第一行的 !<DOCTYPE html>
表明该文件是 HTML 文档,便于浏览器正确解析,没有实际含义。DOCTYPE
之后的整个网页内容都包裹在 html 元素 中,这是约定俗成的格式。如此一来,网页内所有元素都是 html 元素的子元素,整个 HTML 文档像树一样开枝散叶,结构清晰明朗。因此,html 元素也被称为 根元素。
网页根元素有两个分支,一个叫 head 元素,另一个叫 body 元素。它们分别是网页的 网页头 和 网页体。
<html> -------html元素 根元素
<head>
<title>爬虫</title> -------head元素 网页头
</head>
<body>
</body> --------body元素 网页体
</html>
网页体中的内容是展示给用户的。网页头中的信息则是展示给浏览器和搜索引擎等程序的,比如:网页内容使用什么 字符编码方式?当用户打开网页时,标签页标题 中应该显示什么内容?该如何配合搜索引擎,让需要网页内容的人能通过 关键字 检索到我的网页?
因此 HTML 规定:
用 title 元素 设置网页标题,这个标题将显示在浏览器标签页上,也会作为收藏时的描述文字;
用 meta 元素 设置网页元信息,这些信息包括网页使用什么样的字符编码方式、样式、整体布局,还包含页面描述信息和面向搜索引擎的搜索关键字等等。
head 元素中还有许多 link 元素 和 script 元素,它们负责将 HTML 文档与对应的 CSS 样式、JavaScript 代码文件关联起来。