[TOC]
# HTML基础知识
## 什么是HTML(超文本标记语言)
看似很简单的问题,却又很难给出定义。
`HTML` 是一种使用标签元素来构建Web页面的语言,通过提供了`style`样式可以美化元素显示效果, 通过`Event`事件丰富标签元素的行为表现。
每个标签元素都包含一些属性信息,通过属性信息来命名、样式等个性化信息,例如 <a> 的 `href`属性可以提供`链接地址`信息。`<img>`标签元素的`src`属性标记出显示的`图片路径`信息。
1. 通过`标签元素`的布局来定义要展示页面的大致布局结构
2. 再通过`CSS样式`及标签属性丰富页面显示效果,让页面看起来更加美观
3. 再通过`JavaScript`脚本和`标签事件`动作的配合,让页面看起来是动态的和相互关联的。
## HTML结构
HTML基本结构如下:
```sh
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
</body>
</html>
```
![](https://img.kancloud.cn/99/cc/99cc1aea52f6888a5ea04d22e755d6a5_1275x536.png)
### Doctype声明
`<!DOCTYPE html>` :这是文档类型声明,`HTML`文档必须要添加的,这个是`HTML5`的声明,以前的声明还有如下:
HTML 4.01 :
```sh
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
```
XHTML 1.1 :
```sh
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
```
关于不同`DocType`支持的标签也是不同的,详细参考连接 [Valid HTML Elements in Different DOCTYPES](https://www.w3schools.com/tags/ref_html_dtd.asp)
### head头标签
> 页面标题、样式链接、脚本链接、元数据等信息都包含在`<head>`标签中,
`<head>`标签中可以包含标签:
- `<title> (required in every HTML document)`
- `<style>`
- `<base>`
- `<link>`
- `<meta>` : 元数据描述了页面相关的关键词、作者信息、修改时间及字符集等信息,帮助搜索引擎标记Web页面搜索关键词。
- `<script>`
- `<noscript>`
#### `<meta>`元数据标签属性
|属性|值|描述|
|:---|:-----------|:----------|
|content(必选属性)|some_text|定义与 http-equiv 或 name 属性相关的元信息|
|http-equiv | content-type , expires, refresh, set-cookie| 把 content 属性关联到 HTTP 头部。|
|name |author,description,keywords,generator,revised,others| 把 content 属性关联到一个名称。|
|scheme|some_text|定义用于翻译 content 属性值的格式。|
关于`<meta>`元数据的示例:
```sh
<meta name="description" content="Free Web tutorials on HTML, CSS, XML" />
<meta name="keywords" content="HTML, CSS, XML" />
<meta http-equiv="charset" content="utf-8">
```
其中`http-equiv`属性为`key-value`对提供了命名的名称。
当浏览器请求服务器数据头部时会返回信息如下:
```sh
content-type: text/html
description: Free Web tutorials on HTML, CSS, XML
keywords: HTML, CSS, XML
charset:utf-8
```
### body实体标签
> 要显示的内容就包含在`<body>`标签中,也就是我们要描述页面布局的位置,我们需要展示什么样的布局,什么内容,都是在这里进行描述的。
`<body>`实体标签内部可以包含很多标签,具体的标签可参考 [标签元素名称列表](HTML标签元素列表.md)
### style设置CSS样式
> 仅仅使用标签描述文档结构是不够美观的,我们还需要通过`CSS`样式来控制标签显示的更加丰富多彩。
下面是一个简单的定义颜色显示:
```sh
<head>
<style type="text/css">
h1 {color:red}
p {color:blue}
</style>
</head>
```
如果需要外部链接到`CSS`样式文件,需要使用`<link>`标签:
```sh
<head>
<link rel="stylesheet" type="text/css" href="theme.css" />
</head>
```
### HTML事件属性
> 在浏览器中,HTML的事件属性可以触发一些执行动作,比如当点击一个标签元素时可以执行`onclick`事件设置的`JavaScript`方法动作。关于`JavaScript`的方法实现就不在这里介绍,这里只是列举一下有哪些事件类型。
- Window 事件属性: 针对 window 对象触发的事件(应用到 <body> 标签)
- Form表单 事件: 由 HTML 表单内的动作触发的事件(应用到几乎所有 HTML 元素,但最常用在 form 元素中)
- Keyboard 事件: 键盘事件`onkeydown`按下按键、`onkeypress`敲击按键、`onkeyup`释放按键
- Mouse 事件: 鼠标或类似用户动作触发的事件 ,如:左键按下、左键释放、滚动、点击、拖放等动作。
- Media 事件: 由媒介(比如视频、图像和音频)触发的事件(适用于所有 HTML 元素,但常见于媒介元素中,比如 <audio>、<embed>、<img>、<object> 以及 <video>)
具体事件属性名和含义参考 [HTML事件属性列表](HTML事件属性列表.md)
---
- 课程大纲
- 入门篇
- 爬虫是什么
- 为什么要学习爬虫
- 爬虫的基本原理
- TCP/IP协议族的基本知识
- HTTP协议基础知识
- HTML基础知识
- HTML_DOM基础知识
- urllib3库的基本使用
- requests库的基本使用
- Web页面数据解析处理方法
- re库正则表达式的基础使用
- CSS选择器参考手册
- XPath快速了解
- 实战练习:百度贴吧热议榜
- 进阶篇
- 服务端渲染(CSR)页面抓取方法
- 客户端渲染(CSR)页面抓取方法
- Selenium库的基本使用
- Selenium库的高级使用
- Selenium调用JavaScript方法
- Selenium库的远程WebDriver
- APP移动端数据抓取基础知识
- HTTP协议代理抓包分析方法
- Appium测试Android应用基础环境准备
- Appium爬虫编写实战学习
- Appium的元素相关的方法
- Appium的Device相关操作方法
- Appium的交互操作方法
- 代理池的使用与搭建
- Cookies池的搭建与用法
- 数据持久化-数据库的基础操作方法(mysql/redis/mongodb)
- 执行JS之execjs库使用
- 高级篇
- Scrapy的基本知识
- Scrapy的Spider详细介绍
- Scrapy的Selector选择器使用方法
- Scrapy的Item使用方法
- Scrapy的ItemPipeline使用方法
- Scrapy的Shell调试方法
- Scrapy的Proxy设置方法
- Scrapy的Referer填充策略
- Scrapy的服务端部署方法
- Scrapy的分布式爬虫部署方法
- Headless浏览器-pyppeteer基础知识
- Headless浏览器-pyppeteer常用的设置方法
- Headless浏览器-反爬应对办法
- 爬虫设置技巧-UserAgent设置
- 反爬策略之验证码处理方法
- 反爬识别码之点击文字图片的自动识别方法
- 反爬字体处理方法总结
- 防止反爬虫的设置技巧总结
- 实战篇
- AJAX接口-CSDN技术博客文章标题爬取
- AJAX接口-拉购网职位搜索爬虫
- 执行JS示例方法一之动漫图片地址获取方法
- JS执行方法示例二完整mangabz漫画爬虫示例
- 应用实践-SOCKS代理池爬虫
- 落霞小说爬虫自动制作epub电子书
- 一种简单的适用于分布式模式知乎用户信息爬虫实现示例
- 法律安全说明