概述
HTML叫做超文本标记语言,用于搭建网页的结构
网页的组成
- 前端三层: HTML(结构层)、CSS(样式层)、JavaScript(行为层)
- 其他多媒体内容: 图片、视频、音频、超级链接等
- 所有网页的网页文件都是真实的、物理存在的文件
HTTP协议(超文本传输协议): 客户端浏览器或其他程序与WEB服务器之间的应用层通信协议。
HTTP请求
- request,浏览器根据网址向对应的服务器发送请求。
- 发起请求的方法:在浏览器地址栏中输入网址,或者点击网址链接。
- HTML页面解析过程中,会发出多个http请求,包含网页的图片、视频、音频等文件请求。
HTTP响应
- 响应:response,服务器根据请求响应一个HTML文件,将HTML传输给客户端,在浏览器中进行HTML网页的渲染。
纯文本格式
纯文本格式,就是没有任何文本修饰的,没有任何粗体,下划线,斜体,图形,符号或特殊字符及特殊打印格式的文本,只保存文本,不保存其格式设置。
特点
1、文件只能保存文本,不保存其他的格式或非文本内容,有利于网络传输。
2、所有的纯文本格式文件,可以通过直接更改扩展名的方式更改保存格式
3、纯文本格式文件可以使用任意的纯文本编辑器进行查看和编辑
HTML概念
重要概念
超文本
- 是超级文本的缩写,简单来说超文本就是用于链接另一个文本或多媒体内容的文本,比如链接到图片、链接、音频、视频、程序等。
标记
- 又叫做标签(HTML tag),有特殊的书写规范,是写给浏览器的一种语法格式,结合普通的文字信息,实现特殊的语意或显示内容。在编辑器中可以编辑和查看,在浏览器中不显示。
HTML版本规范和标签语法
W3C:万维网联盟。专门发布和维护互联网的规范和标准。
HTML标签:通常被成为HTML标签(HTML tag)。标签在书写和使用过程中,必须遵循特定的语法。
1 标签名必须书写在一对尖括号<>内部
2 标签区分单标签和双标签,双标签必须成对出现
3 双标签包含开始标签和结束标签,结束标签必须书写关闭符号/,单标签也需要进行自封闭书写。在HTML5中,单标签可以不写关闭符号。
HTML元素
HTML元素指的是从开始标签到结束标签的所有内容,包含开始标签、元素内容、结束标签。
eg:双标签内部包含的纯文本内容,就是元素内容
元素内容可以是纯文本,也可以是其他的HTML元素。这种元素内容包含其他HTML元素的情况,我们可以称为嵌套,也就是div标签元素内部嵌套lp标签元素。
1、元素内容可以是纯文本,也可以是其他的HTML元素。这种元素内容包含其他HTML元素的情况,我们可以称为嵌套
2、一个HTML元素div的内容可能是多个其他元素组成。父级,子级同级元素,嵌套关系可以是很多层
标签级别
- 根据标签内部可以存放的元素内容不同,可以将双标签划分为两个级别。
- 容器级:标签内部可以存放任意内容,包含容器级标签。比如h1,div等
- 文本级:标签内部只能存放文字或类似文字的内容,比如存放图片、表单元素等。
HTML元素的特性
1 元素间对空格、换行、锁进等形成的空白不敏感,有无空白对在浏览器中加载的效果没有影响。浏览器识别的是元素的开始和结束以及互相之间的嵌套关系。
2 空白折叠现象:元素内容如果是文本,所有文字(类似文字内容)之间如果有空格、换行、缩进等空白字符,在浏览器中加载时,连接在一起的空白会折叠成一个空格显示,这就是空白折叠现象。
HTML属性
HTML标签可以添加属性,属性可以提供关于HTML元素的更多信息。
1 书写位置:必须写在开始标签或者单标签之内,与标签名之间用空格进行分割
2 属性包含:属性名key、属性值value。属性名与属性值之间的写法通常称做键值对写法,HTML标签属性的键值对写法是k=“v”。XHTML要求属性值必须在双引号内部。
3 一个标签内可以设置多个不同的属性,属性与属性之间使用空格进行分隔,每个属性的键值对写法都是k=“v”
4 部分标签属性k可以设置多个属性值v,所有属性值v都必须写在同一对双引号内,值与值之间需要使用空格分隔。
HTML基本结构
基本骨架: HTML文件最基本的四个标签,组成了网页的基本骨架,包括:<html>、<head>、<title>、<body>四组标签。
<html>标签
- 作用:定义HTML文件的跟元素,表示整个的HTML文档,所有的标签要书写在<html>内部
<head>标签
- 作用:用于存放<tittle>、<meta>、<base>、<style>、<script>、<link>。内部用于对网页的设置,除了<title>内部的文字,其他标签都不显示在浏览器上。
<title>标签
- 作用1:让页面拥有一个属于自己的标题
- 作用2:title中的关键字可以作为搜索引擎抓取时的关键字,提高SEO搜索引擎优化
- 作用3:内部的内容会显示在搜索结果的标题部分
- 作用4:作为浏览器收藏夹默认的网页标题
<body>标签
- 作用:定义网页的主体部分,用于存放所有的HTML显示内容的标签<p>、<div>、<a>等
<!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>
DTD、命名空间、字符集
DTD
- 完整的HTML文件的第一行内容叫做文档定义类型,英文DocType Definition,简称DTD。也称作文档声明类型,DocType Definition。
- 作用:告诉浏览器该网页使用的是哪个版本的HTML规范,让浏览器按照对应版本的HTML语法进行解析页面
命名空间
- <html>元素表示整个网页文档,在开始标签上设置了命名空间xmlns属性。
//XHTML 1.0
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"></html>
//HTML5
<html lang="en">
</html>
- xml:可扩展标记语言,使用在传输过程中的规范。被设计用来传输和储存数据,是html的补充
- xmlns:全称叫做XML NameSpace,NameSpace叫做命名空间,浏览器会讲此命名空间用于该属性所在元素内的所有内容。
- <html>元素的命名空间规定了在不同用户的浏览器中标签语意遵循的统一标准,避免出现标签名冲突,这个标准使用的就是一个固定的网址http://www.w3.org/1999/xhtml
语言
- xml:lang="en"和lang="en" 表示所有的标签元素内容的语言都是英语,对搜索引擎和浏览器是有帮助的
- lang="zh-cn" 表示中文(中国)
字符集
- <head>内部的<meta>标签通过http-equiv属性定义来当前的网页所使用的字符编码
- char: character,字符。set:集合
- XHTML 1.0
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> - HTML 5
<meta charset="UTF-8">
国际通用字库: - UTF-8 以字节为单位对Unicode万国码进行编码,涵盖了所有人类的语言文字,一个汗渍为3个字节大小。
中国国标字库 - gb2312: 共收汉字6723个包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个。
- gbk:是gb2312的扩展,增加了繁体字,共收入21886个汉字和图形符号,其中汉字21003个,图形符号883个,一个汉字为2个字节大小。
- XHTML 1.0
注释
- html注释语法
<!-- 注释内容 -->
用途
1 在源代码中添加描述性的提示信息,便于我们阅读代码
2 对于HTML纠错也有很大的帮助,可以通过注释某一行代码,以便检索错误的位置
3 暂时注释掉一部分不用的代码,以便后期恢复代码
标题
- 标题,是通过<h1> - <h6> 六个标签分别来对六个级别的标题进行定义的。
- <h1>定义最大的标题,<h6>是最小的
- <h1> - <h6>标签都是双标签,切是容器级标签
权重
- 标题标签对于呈现文档结构非常重要,使用时要根据标签的重要程度进行选择,其中<h1>标签最重要,<h2>标签此重要,以此类推
- h1在整个html中的权重非常高,内部应该放置HTML中最重要的内容,比如logo
- h1由于非常重要,内部的文字对于提高搜索引擎排名也非常重要,为了防止作弊,如果一个页面出现多个h1,反而降低权重。约定俗成的,一个页面中只会出现一个h1
段落标签
- 段落是通过<p>标签进行定义的
- <p>标签是双标签,且为文本级标签。内部只能放置文本、图片、表单元素,或者废弃的<font>标签等
换行标签
- <br />(breaking)标签是HTML中的一个简单的换行符
- <br />标签是一个单标签
文本格式化
- HTML中有部分标签是用来对文字进行格式化显示设置的,比如粗体和斜体等。
- 但是在HTML4.0版本规范后,结构和样式进行了分离,HTML只负责搭建结构,css负责格 式化样式,所以大部分文本格式化标签被废弃,但是在HTML4.01和XHTML1.0 transitional版本中依旧可以使用。
文本格式化标签均为双标签,且为文本级标签,内部只能书写文字
图像
- 图像(image)由<img>标签进行定义
- <img>标签是单标签,本身相当于一个特殊的文本
- <img>标签的作用是在指定位置插入一张图片
- 在HTML文件,常用的插入图片的类型有:jpg、png、gif
img标签常用属性展示:
上级查找:指目标文件在HTML文件所在文件夹的更上一级,需要跳出当前文件夹到上一层,路径写法 利用../表示跳出一级,如果跳出多级书写多次../,直到找到文件。
音频和视频
音频标签
- 音频使用<audio>标签进行定义
- <audio>是双标签
- 同图片一样,需要使用src属性设置音频查找的路径
- 音频文件支持的格式包括:.mp3、.ogg、.wav
<audio src="audio.mp3" controls="controls"> </audio>
视频标签
- 视频使用<video>标签进行定义
- <video>是双标签
- 使用src属性设置视频查找的路径
- 视频文件支持的格式包括: .mp4、.ogg、.webm
<video src="video.mp4" controls="controls" ></video>
超级链接标签
- 在HTML中使用<a>标签可以创建链接。
- a全称anchor,锚的意思。
- <a>为双标签。
- 作用:在指定的位置添加超级链接,提供用户进行点击和跳转。
- <a>标签可以实现两种跳转:跨页面跳转、页面内跳转。实现跳转的方式需要用到一些标签 属性。
href属性
href全称hypertext reference,超文本引用,用于规定链接的目标地址。
属性值:链接目标的路径地址。可以使用相对路径或网址形式的绝对路径。
href属性非常重要,<a>标签要想实现点击跳转,必须设置该属性,拥有这个属性<a>标签在 鼠标移上时才会显示一个小手指针状态。
target属性
- 使用target 属性,可以定义被链接的文档在何处跳转显示。
- 属性值有两种:
- _self:默认值,表示跳转的页面在当前窗口打开,不会打开新的窗口。
- _blank:空白的,表示跳转的页面在新窗口打开。
title属性
title设置的是鼠标悬停时的提示文本,与<img>标签类似。
属性值:自定义的文字内容。
该属性用于给用户进行提示,该链接的功能是什么,提高用户的体验。
锚点跳转
页面内锚点跳转
- 这种跳转方式实现的是从某个位置跳转到同页面的另一个位置
- 制作方法分为两个步骤,分别是设置锚点、添加链接
1 设置锚点
设置锚点,也就是设置跳转目标位置,有两种设置方式
①在目标位置找到任意一个标签,给它添加id属性,id的属性值必须是唯一的。 id的属性值自定义规则:必须以字母开头,后面可以有字母、数字、下划线和横线,区分大小写
②在目标位置添加一个空的<a>标签,只设置一个name属性,name属性值设置方式与id相同,也必须是唯一的。
列表
- 列表用于制作HTML中的一系列项目。
- 通常我们会将内容相关、结构相似、样式相近的内容使用列表结构进行搭建。
- 根据项目的内容不同,可以有三种语义的列表结构:无序列表、有序列表、定义列表。
无序列表
无序列表需要两个标签参与,分别是<ul>和<li>。
ul:unordered list,表示定义一个无序列表的大结构。
li: list item 列表项,定义的是无序列表内的某一项
<ul>和<li>是嵌套关系,快捷键:ul>li。
一个列表中可以有任意个列表项。
有序列表
有序列表的语法与无序列表非常类似,只是在语义上有差异。
有序列表由两个标签组成,分别是<ol>和<li>。
ol:ordered list,表示定义一个有序的列表的大结构
li:list item,定义的是有序列表的每一项。<ol>和<li>是嵌套关系,快捷键:ol>li。
<ol>标签内部可以嵌套任意多个<li>标签。
定义列表标签
自定义列表不仅仅是一列项目,而是项目及其注释的组合。
由三个标签组成完整的结构,包含<dl>、<dt>和<dd>。
dl:definition list,表示定义一个自定义列表的大结构。
dt:definition term,表示定义自定义列表中的一个主题或者术语。
dd:definition description,定义解释项,表示描述或解释前面的定义主题。
<dl>内部只能嵌套<dt>和<dd>,<dt>与<dd>是同级关系。
布局标签
<div>和<span>标签常用作布局工具,我们俗称盒子,后期h5也增加了更多的布局标签。
<div>和<span>都是没有具体明确的语义的。
div:全称division,分割、区域、跨度的意思。俗称大盒子。
<div>是双标签,是最经典的容器级标签,内部可以放置任意内容。
作用:多用于划分网页区域,进行结构布局。一般将相关的内容使用<div>包裹起来,整体设置大的布局效果。
<span>标签
- span:小区域、小跨度的意思。俗称小盒子。
- <span>也是双标签,容器级标签。
- 作用:在不改变整体效果的情况下,可以辅助进行局部调整。
表格
基础
- 创建一个简单的表格至少有三个标签组成,分别是<table>、<tr>、<td>标签。
table:表格,定义的是整个的表格大结构。
tr:table rows,表格的行,定义的是表格由多少行组成。
td:table data,表格数据,也叫表格单元格,定义的是每一行内部的单元格。 - 三者的关系:table>tr>td.一个表格中有多个行,每个行中有多个单元格。
<table>的属性
<table>标签可以添加border边框属性。
表格的单元格之间有默认的空隙,会导致双线边框。
解决方法:设置标签样式属性style。
属性值:border-collapse : collapse; 表示边框塌陷。
合并单元格
- 表格的单元格可以进行合并,通过<th>和<td>的两个属性可以进行合并设置。
- rowspan:跨行和并。上下的合并。
- colspan:跨列合并。左右的合并。
- 属性值:数字,数字是几表示跨几行或跨几列合并。
分区标签
- <table>内部最直接的子级包含四个分区标签,他们都是双标签。
caption:表格的标题,内部书写标题文字。
thead:table head,表格的头部。内部嵌套tr>th。
tbody:table body,表格的主体。内部嵌套tr>td。
tfoot:table foot,表格的页脚。内部嵌套tr>td。 - 四个分区可以选择性的进行组合。
- 注意:不论书写顺序如何颠倒,浏览器中的加载顺序都是自动按照caption、thead、tbody、tfoot执行的。
表单
组成
- HTML 表单用于搜集不同类型的用户输入,表单元素就是网页中提供用户进行输入或点击的小控件。
- 在HTML中,一个完整的表单通常由表单域、提示信息和表单控件(也称为表单元素)3个部分构成。
功能
表单域:相当于一个容器,用来容纳所有的表单控件和提示信息,可以通过他定义处
理表单数据所用程序的url地址,以及数据提交到服务器的方法。如果不定义表单域,表单中的数据就无法传送到后台服务器。
提示信息:一个表单中通常还需要包含一些说明性的文字,提示用户进行填写和操作。
表单控件:包含了具体的表单功能项,如单行文本输入框、密码输入框、复选框、提
交按钮、重置按钮等。
表单域form
- HTML表单域使用<form>标签进行定义。
- <form>标签是一个功能性标签,填写的表单信息要想正确的提交到后台服务器,必须放在一个<form>标签之内。
- <form>标签为双标签,容器级标签。
表单域标签属性
-
<form>标签通过对应属性规定提交数据的方法和提交位置。
表单属性.png
input标签
- <input>标签是最重要的一个表单元素。
- <input>标签为单标签,本身相当于一个特殊的文本。
-
<input>标签需要通过标签属性实现各种功能。
input属性.png
单选框:radio
<input>标签的type属性值为radio。
定义提供用户点击选择的单选框。
单选框一般都是成组出现,多个单选框组成一组选择的情况。
同一组单选框之间必须是互斥的关系,通过给同一组单选框都设置相同的name属性
值实现。
按钮
<input>标签有四种形式的按钮:
文件上传:file
<input>标签的type属性值为file。
定义文件上传按钮,可以提供用户选择本地文件进行上传服务器。
<input type="file">
使用input的multiple属性,可以决定是否可以选择多个文件。
<input type="file" multiple="multiple" />
文本域<textarea>
文本域使用<textarea>标签定义,制作可以输入多行文本的区域。
<textarea>标签为双标签,本身相当于一个特殊的文字。
文本域可以设置默认输入的文字,在双标签之间书写默认文字。
<textarea>属性
<textarea>有两个标签属性,可以设置显示区域大小。
rows:行,属性值是数字,数字是几表示文本框显示的最大行数,如果超过了行数,会被隐藏并且出现滚动条。
cols:列,属性值是数字,数字是几,表示在出现滚动条之后,每一行显示的最大字
节数(一个汉字按2字节计算)。
下拉菜单
HTML中的下拉菜单提前设置一些选项,然后可以通过点击选择其中一项。
下拉菜单需要至少两个标签完成结构:
<select>:选择,表示定义下拉菜单整体结构。
<option>:选项,表示定义下拉菜单的每一项。
两个标签都是双标签,文本级标签。
关系:select>option,option可以有任意多项。
默认情况下,选中的是第一项。
下拉菜单可以通过给<option>标签设置selected属性,属性值为selected,更改默认
选中项。
<option selected="selected">北京</option>
分组管理
下拉菜单中如果选项变得复杂,可以将<option>进行分组管理。
可以使用<optgroup>标签对选项进行分组,<optgroup>是一个双标签。
关系:select>optgroup>option
<optgroup>可以设置一个label属性,表示给这一组选项添加一个分组标签名,分组
标签<optgroup>是不能被点击选择的。
<select>
<optgroup label="国内">
<option>广州</option>
<option selected="selected">北京</option>
</optgroup>
<optgroup label="国外">
<option>伦敦</option>
<option>巴黎</option>
</optgroup>
</select>
<label>标签
<label>标签的作用是帮表单元素定义标注(标记)。
如果将表单控件与提示内容使用<label>进行绑定后,当用户鼠标点击<label>内的提
示内容时,浏览器就会自动将焦点转到和标签相关的表单控件上。
绑定方法一
1.给表单元素设置id属性。
2.然后将需要绑定的其他内容用<label>标签包裹。
3.给<label>标签设置for属性,属性值为绑定的表单元素的id属性值。
<input type="checkbox" name="hobby" id="sport" />
<label for="sport">运动</label>
绑定方法二
如果绑定内容和表单元素写在一起,可以化简绑定写法。
直接使用<label>标签将绑定内容与表单元素一起进行嵌套。
<label><input type="radio" name="sex" />男</label>
了解字符实体
在普通文字书写时,有一些特殊符号不能直接书写(例如连续的空格),或者符号有特殊功能也不能直接书写(例如<>符号)。
可以使用一些HTML提前预留好的替换字符进行书写,这些替换字符叫做字符实体。
使用方法
可以查询特殊字符的替换写法,包含实体名称以及实体编号。
规则和建议
规则:所有的字符实体和实体编号都是以&开头,以;结尾的。
注意:实体名称对大小写敏感!
建议1:使用实体名称,好处是名称易于记忆。不过坏处是,浏览器也许并不支持所有实体名称(对实体数字的支持却很好)。
建议2:不需要强制记忆所有的字符实体,只需要记忆常用的几个字符实体名称即可,其他可以通过手册进行查询。