HTML基本知识
HTML其实就是用来制作网页的
服务器
就是我们放页面文件的地方 客户端通过网络请求重服务器渠道文件。
客户端
也是用户端就是我们的浏览器
作用1:发送HTTP请求,发送的方式是在浏览器地址栏输入对应网址,或者点击超级链接。
作用2:接收服务器发回的HTTP响应,服务器会发回一个HTML给浏览器。
作用3:将接收到的HTML进行解析并显示。
HTTP协议
就是客户端或其他的应用程序与web服务器之间的应用层通信协议。
HTTP包含请求和响应两部分。 request & response
HTTP(Hypertext Transfer Protocol):超文本传输协议
TCP(Transmission Control Protocol):传输控制协议
TCP/IP协议是传输层协议,主要解决数据如何在网络中传输。而HTTP是应用层协议,主要解决如何包装数据。Web使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP作传输层协议将它发送到网络上。
TCP协议的三次握手
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
原文链接:https://blog.csdn.net/weixin_43184774/article/details/105995655
纯文本格式
- 纯文本格式,就是没有任何文本修饰的,没有任何粗体,下划线,斜体,图形,符号或特殊字符及特殊打印格式的文本,只保存文本,不保存其格式设置。
- 富文本格式文件:与纯文本对应,最常见的是.rtf文件,类似.doc文件,内部可以保存文本的样式、图片等。
纯文本格式文件的特点:
- 文件只能保存文本,不保存其他的格式或非文本内容。有利于网络传输。
- 所有的纯文本格式文件,可以通过直接更改扩展名的方式更改保存格式。
- 纯文本格式文件可以使用任意的纯文本编辑器进行查看和编辑。
HTML、css、JavaScript都是纯文本格式文件
HTML概念
超文本标记语言。是用来制作网页的一种标记语言。
HTML基本语法
HTML标签
HTML 标记通常被称为 HTML 标签 (HTML tag)。标签在书写和使用过程中,必须遵循特定的语法。
1.标签名必须书写在一对尖括号<>内部。
<html></html>
2.标签分为单标签和双标签,双标签必须成对出现。
<p></p> 双标签
<br /> 单标签
3.双标签包含开始标签和结束标签,xhtml中要求结束标签必须书写关闭符号/,单标签也需要进行自封闭书写。
错误写法
<div><div>
<br>
在HTML5中,单标签可以不写关闭符号。
HTML元素
HTML元素指的是从开始标签到结束标签的所有内容,包含开始标签、元素内容、结束标签。
注意:单标签是不能添加元素内容的,可以称为空元素。
根据标签内部可以存放的内容不同,可以将双标签划分为两个级别。
- 容器级:标签内部可以存放任意内容,包含容器级标签。比如h1,div等。
- 文本级:标签内部只能存放文字或类似文字的内容,比如存放图片、表单元素等。比如p等。
HTML元素特性1:元素间对空格、换行、缩进等形成的空白不敏感,有无空白对在浏览器中加载的效果没有影响。
HTML元素特性2:元素内容如果是文本,会出现空白折叠现象。
HTML属性
HTML标签可以添加属性,属性可以提供关于HTML元素的更多信息。
1.书写位置:必须写在开始标签或者单标签之内,与标签名之间用空格进行分隔。
2.属性包含:属性名(key)、属性值(value)。属性名与属性值之间的写法通常称做键值对写法,HTML标签属性的键值对写法是k=”v”。XHTML要求属性值必须在双引号内部。
3、一个标签内可以设置多个不同的属性,属性与属性之间使用空格进行分隔,每个属性的键值对写法都是k=“v”。
<p k="v" k="v" k="v"></p>
4、部分标签属性k可以设置多个属性值v,所有属性值v都必须写在同一对双引号内,值与值之间需要使用空格分隔。
<p k="v1 v2 v3 v4"></p>
HTML基本结构
HTML文件最基本的四个标签,组成了网页的基本骨架,包括:html、head、title、body四组标签。
<html>
<head>
<title>网页标题</title>
</head>
<body>
网页主体内容
</body>
</html>
-
html标签:定义HTML文件的根元素,表示整个的HTML文档,所有的标签要书写在html标签内部。
-
head标签:用于存放title,meta,base,style,script,link。内部用于对网页的设置,除了title内部的文字,其他标签都不显示在浏览器上。注意在head标签中我们必须要设置的标签是title。
-
title标签:作用1:让页面拥有一个属于自己的标题。 作用2:title中的关键字可以作为搜索引擎抓取时的关键字,提高SEO搜索引擎优化。 作用3:内部的内容会显示在搜索结果的标题部分。 作用4:作为浏览器收藏夹默认的网页标题。 建议网页必须添加title标签内部内容,内容尽量精简,提取网页的关键字。
-
body标签:作用:定义网页的主体部分,用于存放所有的HTML显示内容的标签p,h,a,b,u,i,s,em,del,ins,strong,img等。内部的元素内容会显示在浏览器的窗口中。
DTO
完整的HTML文件的第一行内容叫做文档定义类型,英文DocType Definition,简称DTD。也称作文档声明类型,DocType Declaration。
作用:告知浏览器该网页使用的是哪种版本的HTML规范。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
W3C:world wide web consortium,万维网联盟。专门发布和维护互联网的规范和标准。
HTML版本:HTML1.0-XHTML-HTML5
HTML4.0规范开始,将结构和样式进行了分离,废弃了一些用来描述样式效果的标签,例如font、b、u、i等。目前大部分网站使用的是HTML4.01规范。
XHTML是在HTML4.01基础上进行的升级扩展和严格化。在XHTML1.0中,严格规定了标签必须是小写,所有的属性都必须用双引号封闭,结束标签必须有结尾反斜杠关闭符号。
XHTML和HTML4.01两个规范下面分别包含了3个小规范:
Strict 严格版:不能使用font等废弃标签,不能使用框架集,结构和样式分离。
Transitional 过渡版(通用版):可以使用font等废弃标签,不能使用框架集
Frameset 框架集版:可以使用框架集
严格程度:XHTML1.0 Strict > HTML4.01 Strict > XHTML1.0 transitionl > HTML4.01 transitionl
命名空间
<html>元素表示整个网页文档,在开始标签上设置了命名空间xmlns属性。
XHTML1.0 transitionl版本
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
</html>
xml:可扩展标记语言,使用在传输过程中的规范。被设计用来传输和存储数据,是html的补充。
xmlns:全称叫做XML NameSpace,NameSpace叫做命名空间,可以在文档中定义一个或多个可供选择的命名空间,浏览器会将此命名空间用于该属性所在元素内的所有内容。
<html>
元素的命名空间规定了在不同用户的浏览器中标签语义遵循的统一标准,这个标准使用的就是一个固定的网址http://www.w3.org/1999/xhtml中的规范。
xml:lang=“en” 表示所有的标签的语言都是英语。
在HTML5版本时命名空间也进行了简化。
HTML5版本
<html lang="en">
</html>
字符集
<head>标签内部的meta标签通过http-equiv属性定义了当前的网页所使用的字符编码。
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
这条代码设定页面使用的字符集“Content-Type”,定义了当前页面的文件类型“text/html”和编码方式“utf-8”。
<meta>
是HTML语言中的一个可选的标记项。提供关于 HTML 文档的元数据。元数据不会显示在页面上,但是对于机器是可读的。meta 元素被用于规定页面的描述、关键词、文档的作者、最后修改时间以及其他元数据。元数据可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 web 服务。使用在页面的<head></head>
之间。meta的用法:语法:<meta name="name" content="string">
参数:1)name项:常用的选项有keywords(关键字)、description(描述或说明)、author(制作者)等。 2)http-equiv项:可用于代替name项,常用的选项有creation-date(创作日期)、refresh(刷新与自动跳转)等。 3)content(内容)项:根据name项或http-equiv项的定义来决定此项填写什么样的字符串。 举个栗子:<meta name="Keyword" content="慕课网,公开课,MOOC,慕课,移动开发,IT技能,免费编程视频,在线编程学习,php开发,web前端,html5教程,css教程,ios开发培训,安卓开发教程,android开发,慕课官网">
char:character,字符。
set:集合。
中文常用字符集包括:
UTF-8:国际通用字库,涵盖了所有人类的语言文字,一个汉字为3个字节大小。
gb2312:国标字库,共收入汉字6763个和包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个。
gbk:国标字库,是gb2312的扩展,增加了繁体字,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个,一个汉字为2个字节大小。
使用情况建议:
1、如果没有网页加载速度要求,或者制作的是外文网站,使用utf-8。
2、如果含有大量中文汉字的网站,而且要求网页加载速度快,使用gbk。
注意:meta标签声明的字库,必须和编辑器软件默认编译字库相同,否则会出现两个字库不匹配,浏览器加载时出现乱码。
HTML常用标签
注释
HTML注释语法:
<!-- 书写注释内容 -->
注释只在源代码中可见,浏览器窗口是不显示的。
利用注释的特点,可以有多种用途:
①在源代码中添加描述性的提示信息,便于我们阅读代码。
②对于 HTML 纠错也大有帮助,可以通过注释某一行 HTML 代码,以便检索错误的位置。
③暂时注释掉一部分不用的代码,便于后期恢复代码。
vscode和sublime快捷键:ctrl+/
标题
标题(Heading),是通过<h1>-<h6> 六个标签分别来对六个级别的标题进行定义的。
<h1>定义最大的标题,<h6>定义最小的标题。
<h1>-<h6> 标签都是双标签,且是容器级标签。
**注意①**标题标签的作用是给标签内部的元素内容添加对应级别标题的语义,不负责文字的粗体、字号等样式。样式是由css设定的。
注意②标题标签之间是不能互相嵌套的,下一级标题与上级标题之间通过同级关系书写,下一级标题解释说明的是前面距离最近的上一级标题。
注意③标题标签对于呈现文档结构非常重要,使用时要根据标签的重要程度进行选择,其中<h1>
标签最重要,<h2>
标签次重要,以此类推。
<h1>
在整个HTML中的权重非常高,内部应该放置HTML中最重要的内容,比如logo。
<h1>
由于非常重要,内部的文字对于提高搜索引擎排名也非常重要,为了防止作弊,如果一个页面出现多个<h1>
,反而降低权重。约定俗成的,一个页面中只会出现一个<h1>
。
段落
段落(paragraph)是通过<p>
标签进行定义的。
<p>
标签是双标签,且为文本级标签。内部只能放置文本、图片、表单元素,或者废弃的标签等。
注意①:<p>
标签的作用是给标签内部的内容添加一个完整段落的语义,不负责内容自动换行的样式。换行的效果是由css决定的。
注意②:每一对儿<p>
标签内部的元素内容为一个完整的段落,如果有多个段落,需要分别使用不同的<p>
标签进行定义。
文本格式化标签:类似b(bold)标签(加粗),u标签(下划线),i标签(斜体),em(自带斜体),small(小号字体),strong(加重语气,变粗),sub(下标字),sup(上标ins),(定义插入字,自带下划线效果),del(删除线)
图像
图像(image)由<img>
标签进行定义。
<img>
标签是单标签,本身相当于一个特殊的文本。
<img>
标签的作用是在指定的位置插入一张图片。
src和路径
如果需要插入一张图片到HTML中,<img>
标签必须设置src属性。
src:全称source资源,属性值是图片查找的路径。
路径:指的是寻找文件时所历经的线路,在HTML中有特殊的书写语法。
路径分为相对路径和绝对路径,不同的方式出发点和参考位置不同。
<img src="" alt="">
(1)相对路径
相对路径查找文件时,需要从HTML文件本身出发,根据相对的位置进行查找,包含三种方向。
同级查找 --指目标文件与HTML文件位于同一级,直接书写文件名+后缀格式;
子级查找 --指目标文件在与HTML文件同一级的文件夹的内部,需要先查找文件夹名称,然后通过关闭符号/进入文件夹查找里面的文件;如果有多层文件夹,需要/进入多层。
<img src="images/smile02.png">
<img src="images/tupian/smile03.jpg">
上级查找 --指目标文件在HTML文件所在文件夹的更上一级,需要跳出当前文件夹到上一层,路径写法利用…/表示跳出一级,如果跳出多级书写多次…/,直到找到文件。
上级查找与子级查找常混合使用,…/一般只出现在开始位置。
<img src="../../smile04.jpg" />
<img src="../images/smile01.jpg" />
注意 相对路径不能跨盘符;
(2)绝对路径
绝对路径查找文件时,不需要从HTML文件出发,而是直接从电脑的盘符出发进行查找,或者使用网址形式查找。
盘符出发 例如从c盘或者d盘出发查找图片,书写时以c:/开头,后续类似子级查找写法直至找到目标文件。
<img src="C:/Users/teacher/Documents/html/case/images/smile02.png" />
网址形式 要查找的文件是来自网络资源,路径写法以http://开头。
<img src="http://img3.imgtn.bdimg.com/it/u=1084243323,278941980&fm=26&gp=0.jpg" />
其他属性
width 宽度
height 高度
border 设置图片的边框
title 设置的是鼠标悬停时的提示文本
alt 设置的是图片查找错误时,出现的替换文本
如果不设置宽高两个属性,会以图片的原始尺寸加载。
如果设置宽高属性:只设置了其中一个,另一个会等比例变换;如果两个都设置,按照设置值加载。
音频标签
<audio src="snow.mp3" controls="controls"></audio>
controls 是控制播放的属性 必须加上才能显示
视频标签
<video src="video.mp4" controls="controls"></video>
超级链接
HTML 使用超级链接与网络上的另一个文档相连。超链接可以是一个字,一个词,或者一组词,也可以是一幅图像,可以点击这些内容来跳转到新的文档或者当前文档中的某个部分。
<a href="url">链接文本</a>
href属性
href全称hypertext reference,超文本引用,用于规定链接的目标地址。
属性值:链接目标的路径地址。可以使用相对路径或网址形式的绝对路径。
target属性
使用target 属性,可以定义被链接的文档在何处跳转显示。
属性值有两种:
_self:默认值,表示跳转的页面在当前窗口打开,不会打开新的窗口。
_blank:空白的,表示跳转的页面在新窗口打开。
title属性
title设置的是鼠标悬停时的提示文本,与<img>
标签类似。
属性值:自定义的文字内容。
页面内锚点跳转
这种跳转方式实现的是从某个位置跳转到同页面的另一个位置。
制作方法分为两个步骤,分别是设置锚点、添加链接。
第一步:设置锚点,也就是设置目标位置,有两种设置方式。
①在目标位置找到任意一个标签,给它添加id属性,id的属性值必须是唯一的。
id的属性值定义规则:必须以字母开头,后面可以有字母、数字、下划线和横线,区分大小写。
<h2 id="mubiao">目标位置</h2>
②在目标位置添加一个空的<a>
标签,只设置一个name属性,name属性值设置方式与id相同,也必须是唯一的。
第二步:链接到锚点,在需要点击的位置设置<a>
标签,给a的href属性设置属性值为#id属性值或者#加a的name属性值。
跨页面锚点跳转
这种跳转方法综合了跨页面跳转和锚点跳转。
制作方法也分为两个步骤,分别是设置锚点、添加链接。
第一步:设置锚点,方式与页面内锚点跳转一致,在目标网页的指定位置设置使用id或name属性。
第二步:链接到锚点,添加超级链接时href属性需要更改,属性值写为页面的路径#id 。
<a href="new.html#mubiao">点击文本</a>
列表
有三种语义的列表结构:无序列表、有序列表、定义列表
样式均由css 负责设置
无序列表
/*
unordered list
list item
*/
<ul>
<li></li>
</ul>
有序列表
/*
ordered list
list item
*/
<ol>
<li></li>
<li></li>
<li></li>
</ol>
定义列表
dl:definition list,表示定义一个自定义列表的大结构。
dt:definition term,表示定义自定义列表中的一个主题或者术语。
dd:definition description,定义解释项,表示描述或解释前面的定义主题。
<dl>
<dt>主题</dt>
<dd>解释项</dd>
</dl
布局
div c全称division,分割、区域、跨度的意思。俗称大盒子。
<div>
是双标签,是最经典的容器级标签,内部可以放置任意内容
span 小区域、小跨度的意思。俗称小盒子。
<span>
也是双标签,容器级标签。
表格
表格基础
创建一个简单的表格至少有三个标签组成,分别是<table>
、<tr>
、<td>
标签。
table:表格,定义的是整个的表格大结构。
tr:table rows,表格的行,定义的是表格由多少行组成。
td:table data,表格数据,也叫表格单元格,定义的是每一行内部的单元格。
三者的关系:table>tr>td.一个表格中有多个行,每个行中有多个单元格。
引申:如果要绘制表头,使用标签<th>
,table head data,表头单元格,在表格中绘制的时候,替换的是<td>
的位置。
<th>
标签中自带默认的css样式效果,文字显示粗体居中。
<tr>
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
</tr>
tips: 清除表格内间距 表格边线 <table style="width: 300px; border-collapse: collapse;" border="1">
合并单元格
表格的单元格可以进行合并,通过<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地址,以及数据提交到服务器的方法。如果不定义表单域,表单中的数据就无法传送到后台服务器。
HTML表单域使用<form>
标签进行定义。
<form>
标签是一个功能性标签,填写的表单信息要想正确的提交到后台服务器,必须放在一个<form>
标签之内。
<form>
标签为双标签,容器级标签。
<form>
标签通过对应属性规定提交数据的方法和提交位置。
属性名 | 属性值 | 描述 |
---|---|---|
action | url | 指定接收并处理表单数据的服务器程序的url地址 |
method | get/post | 用于设置表单数据的提交方式 |
name | 自定义名称 | 规定表单的名称 |
<form action="xxx.php" method="post/get" name="stuMSG">
提示信息及表单控件书写位置
</form>
表单元素
<input>
标签
<input>
标签是最重要的一个表单元素。
<input>
标签为单标签,本身相当于一个特殊的文本。
<input>
标签需要通过标签属性实现各种功能。
其中,type属性的值不同,决定了<input>
标签的形态不同。
单行文本输入框:text
<p>用户名:<input type="text"></p> value属性可以设置默认值
密码输入框:password
<p>密码: <input type="password"></p>
单选框:radio
<p> 性别:
<input type="radio" name="sex"> 男
<input type="radio" name="sex"> 女
</p>
成组的选框要保持互斥必须设置name且值相等
复选框:checkbox
<p>
爱好:
<input type="checkbox" name="hobbis"> 篮球
<input type="checkbox" name="hobbis"> 足球
<input type="checkbox" name="hobbis"> 羽毛球
</p>
默认值设置通过 checked属性且值也是checked
按钮
普通按钮button:没有任何特殊功能。
重置按钮reset:将同一个<form>
中填写的表单内容清空,恢复成默认。
提交按钮submit:第一个作用是能将填写数据提交到<form>
中指定的后台服务器,第二个作用是重置清空<form>
中填写的信息。
图片按钮image:默认为提交按钮的效果,使用的图片需要利用src属性查找正确路径。
文件上传:file
<input type="file">
如果文件上传的input同时设置accept属性,可以选择文件的MIME类型,多个MIME类型用英文逗号分开
<input type="file" accept="image/png,image/gif" />
使用input的multiple属性,可以决定是否可以选择多个文件。
<input type="file" multiple="multiple" />
文本域<textarea>
文本域使用<textarea>
标签定义,制作可以输入多行文本的区域。
<textarea>
标签为双标签,本身相当于一个特殊的文字。
<textarea>
有两个重要属性,可以设置显示区域大小。
rows:行,属性值是数字,数字是几表示文本框显示的最大行数,如果超过了行数,会被隐藏并且出现滚动条。
cols:列,属性值是数字,数字是几,表示在出现滚动条之后,每一行显示的最大字节数(一个汉字按2字节计算)。
文本域可以设置默认输入的文字,在双标签之间书写默认文字。
<textarea cols="30" rows="10">默认输入文字</textarea>
下拉菜单
HTML中的下拉菜单提前设置一些选项,然后可以通过点击选择其中一项。
下拉菜单需要至少两个标签完成结构:
<select>
选择,表示定义下拉菜单整体结构。
<option>
选项,表示定义下拉菜单的每一项。
两个标签都是双标签,文本级标签。
关系:select>option*4
默认情况下,选中的是第一项。
<select>
<option>广州</option>
<option>北京</option>
<option>重庆</option>
<option>上海</option>
</select>
下拉菜单可以通过给<option>
标签设置selected属性,更改默认选中项。
如果想选中哪一项,给对应的<option>
设置selected属性的属性值为selected。
下拉菜单中如果选项变得复杂,可以将<option>
进行分组管理。
可以使用<optgroup>
标签对选项进行分组,<optgroup>
是一个双标签。
关系:select>optgroup>option
<optgroup>
可以设置一个label属性,表示给这一组选项添加一个标签名,分组标签<optgroup>
是不能被点击选择的。
<select>
<optgroup label="国内">
<option>广州</option>
<option selected="selected">北京</option>
<option>重庆</option>
<option>上海</option>
</optgroup>
<optgroup label="国外">
<option>纽约</option>
<option>伦敦</option>
<option>巴黎</option>
</optgroup>
</select>
label标签
所有的表单元素都可以通过绑定其他内容去扩大触发点击范围,这时需要使用一个<label>
标签。
<label>
标签的作用是帮表单元素定义标注(标记)。
如果将表单控件与提示内容使用<label>
进行绑定后,当用户鼠标点击<label>
内的提示内容时,浏览器就会自动将焦点转到和标签相关的表单控件上。
绑定方法:
①给表单元素设置id属性,然后将需要绑定的其他内容用<label>
标签包裹,给<label>
标签设置for属性,属性值为绑定的表单的id属性值。
<input type="checkbox" name="hobby" id="sport" /><label for="sport">运动</label>
②第二种:如果绑定内容和表单元素写在一起,可以化简绑定写法,直接使用
<label><input type="radio" name="sex" />男</label>
水平分割线
<hr>
标签在 HTML 页面中创建一条水平线。
换行
<br>
(breaking)标签是HTML中一个简单的换行符。
<br>
标签是一个单标签。
字符实体
空格 参考w3c的文档[https://www.w3school.com.cn/charsets/ref_html_entities_4.asp]