HTML复习笔记(2)行内块级元素/a标签/音视频/h5新增标签/列表标签/表格/表单/h5新增表单/http协议

目录

1.html语法

2.元素

块级元素

行内元素

a标签

音视频

h5新增语义化标签

列表标签

有序列表

有序列表格式

有序列表样式

无序列表

无序列表格式

无序列表样式

定义列表 dl dt dd

定义列表格式

表格 展示数据

表格标签格式

- 外边距和内边距的属性

水平对齐和垂直对齐的属性

- 细线表格

- 表格的完整结构

- 单元格合并

1.水平方向上的单元格合并

2.垂直方向上的单元格合并

form表单

- 什么是表单元素?

- 表单的格式:

- 常见的表单元素

-input标签

-label标签

HTML5新增表单数据

2.Http协议

2.1.请求报文

2.1.1.请求行

2.1.2.请求头

2.1.3.空行

2.1.4.请求体

2.2.响应报文

2.2.1.状态行

2.2.2.响应头

2.2.3.空行

2.2.4.响应体

1.html语法

注释 <!----> 解释说明 便于代码阅读和维护

元素属性 id class style title

空白语法 无论文档有多少空格浏览器只会解析为一个空白

字符实体 &nbsp;空格 &lt;小于号 &gt; 大于号 &quot; "" &copy;

2.元素

块级元素

div p section html body h1-h6 h5新增 header footer nav article ...

特点:

1.独占一行

2.默认宽度100%

3.可以根据css属性设置宽高

4.高度由自身内容决定

行内元素

span a strong b i em mark sub sup u cite

1.与其他行内元素共享一行

2.高度由自身内容决定

3.无法根据css属性设置宽高

4.不建议嵌套块级元素

3.常用标签

a标签

1.打开链接 进行页面跳转

2.锚点 指定锚点跳转

回到顶部 href='#'

指定锚点

给标签设置id href='#id'

3.发送邮件

href='mailto:邮箱地址'

target 指定a标签打开方式

base标签可以指定所有a标签得打开方式 a标签与base冲突 就近原则

img图片 width height src alt

音视频

video

autoplay 自动播放 muted静音播放 controls 控制条

loop 循环播放 poster封面 width height

video

source src type

audio

autoplay 自动播放 muted静音播放 controls 控制条 loop 循环播放

4.h5新增语义化标签

header footer article nav address details配合summary

figure figcaption

5.单标签

meta img br hr .....

------------------------------------------------------

列表标签

有序列表

有序列表格式

<ol>
    <li></li>
</ol>

有序列表样式

<ol type="A"></ol>
1   默认值。数字有序列表。(1、2、3、4)
a   按字母顺序排列的有序列表,小写。(a、b、c、d)
A   按字母顺序排列的有序列表,大写。(A、B、C、D)
i   罗马字母,小写。(i, ii, iii, iv)
I   罗马字母,大写。(I, II, III, IV)

其它用法和ul都差不多, 也就是应用场景/注意点都和ul差不多

无序列表 ul li type='disc/circle/square'

无序列表格式

 <ul>
   <li>需要显示的条目内容</li>
 </ul>
 li其实是英文list item的缩写
 list是列表的意思
 item是条目的意思
 所以结合起来就是 列表条目的意思

无序列表样式

<ul type="value"></ul>
disc    默认值 实心圆
circle  空心圆
square  实心方块

注意点:

1.一定要记住ul标签是用来给一堆数据添加列表语义的, 而不是用来给他们添加小圆点的

2.ul标签和li标签是一个整体, 是一个组合. 所以一般情况下ul标签和li标签都是一起出现, 不会单个出现. 也就 是说不会单独使用一个ul标签或者单独使用一个li 标签, 都是结合在一起使用 ​ 3.由于ul标签和li标签是一个组合, 所以ul标签中不推荐包含其它标签, 也就是说以后你在ul标签中只会看到li 标

定义列表 dl dt dd

定义列表格式

<ol type="A"></ol>
1   默认值。数字有序列表。(1、2、3、4)
a   按字母顺序排列的有序列表,小写。(a、b、c、d)
A   按字母顺序排列的有序列表,大写。(A、B、C、D)
i   罗马字母,小写。(i, ii, iii, iv)
I   罗马字母,大写。(I, II, III, IV)

表格 展示数据

表格标签格式

<table>
  <tr>
    <td>姓名</td>
    <td>年龄</td>
    <td>身高</td>
  </tr>
  <tr>
    <td>张三</td>
    <td>19</td>
    <td>1.78</td>
  </tr>
</table>

注意点

  • 表格标签有一个border边框属性, 这个属性决定了边框的宽度. 默认情况下这个属性的值是0, 所以看不到边框

  • 表格标签和列表标签一样, 它是一个组合标签, 所以table/tr/td要么一起出现, 要么一起不出现, 不会单个出现

table

属性:width height border bgcolor background

- 外边距和内边距的属性

只能给table标签使用

  • cellspacing外边距就是单元格和单元格之间的距离, 我们称之为外边距 默认情况下单元格和单元格之间的外边距的距离是2px

  • cellpadding内边距就是单元格的边框和文字之间的间隙, 我们称之为内边距 默认情况下内边距是1

    注意: 以后在企业开发中所有控制样式的都是通过CSS或直接使用组件库中的属性控制,使用表格自带属性控制很少,但是要了解基本的使用

cellspacing 单元格和单元格之间得距离 外边距

cellpadding 单元格文字到单元格边框距离 内边距

合并单元格边框 border-collapse:collapse

水平对齐和垂直对齐的属性

其中水平对齐可以给table标签和tr标签和td标签使用.

垂直对齐只能给tr标签和td标签使用.

  • 给table标签设置align属性, 可以控制表格在水平方向的对齐方式.

  • 给tr标签设置align属性, 可以控制当前行中所有单元格内容的水平方向的对齐方式.

  • 给td标签设置align属性, 可以控制当前单元格中内容在水平方向的对齐方式. 注意点: 如果td中设置了align属性, tr中也设置了align属性, 那么单元格中的内容会按照td中设置的来对齐.

  • 给tr标签设置valign属性, 可以控制当前行中所有单元格中的内容, 在垂直方向的对齐方式.

  • 给td标签设置valign属性, 可以控制当前单元格中的内容在垂直方向的对齐方式. 注意点: 如果td中设置了valign属性, tr中也设置了valign属性, 那么单元格中的内容会按照td中设置的来对齐.

align left center right 水平对齐

valign top middle bottom 垂直对齐

- 细线表格

在表格标签中想通过指定外边距为0来实现细线表格是不靠谱的, 其实它是将2条线合并为了一条线, 所以看上去很不舒服

细线表格的制作方式: 1.给table标签设置bgcolor="black",cellspacing = "1px" 2.给tr标签设置bgcolor="white" 注意点: table标签和tr标签以及td标签都支持bgcolor属性

- 表格的完整结构

由于表格中存储的数据比较复杂, 为了方便管理和阅读以及提升语义, 我们可以对表格中存储的数据进行分类 表格中存储的数据可以分为4类

  • 表格的标题

  • 表格的表头信息

  • 表格的主体信息

  • 表格的页尾信息

  • <table>
      <caption>表格的标题</caption>
      <thead>
          <tr>
              <th>每一列的标题</th>
          </tr>
      </thead>
      <tbody>
          <tr>
              <td>数据</td>
          </tr>
      </tbody>
      <tfoot>
          <tr>
              <td>数据</td>
          </tr>
      </tfoot>
    </table>
    caption作用: 指定表格的标题
    thead作用: 指定表格的表头信息
    tbody作用: 指定表格的主体信息
    tfoot作用: 指定表格的附加信息

  • - 单元格合并

    1.水平方向上的单元格合并

  • 可以给td标签添加一个colspan属性, 来指定把某一个单元格当做多个单元格来看待(水平方向) 例如:

    <td colspan="2"></td>

    含义: 把当前单元格当做两个单元格来看待

    注意点: 由于把某一个单元格当做了多个单元格来看待, 所以就会多出一些单元格, 所以需要删掉一些单元格才能正常显示. 一定要记住单元格合并永远都是向后或者向下合并, 而不能向前或者向上合并.

    2.垂直方向上的单元格合并

  • 可以给td标签设置一个rowspan属性, 来指定把某一个单元格当做多个单元格来看待(垂直方向) 例如:

    <td rowspan="2"></td>

    含义: 把当前单元格当做两个单元格来看待

  • form表单

    表单就是专门用来收集用户信息的

    - 什么是表单元素?

    表单元素其实还是HTML中的一些标签, 只不过这些标签比较特殊, 在浏览器中所有的表单标签都有特殊的外观和默认的功能

    - 表单的格式:

    <form action="提交的服务器接口地址">
        <表单元素>
    </form>

    注意:表单元素一定要写在表单中

    - 常见的表单元素

  • -input标签

  •     input标签有一个type属性, 这个属性有很多类型的取值,取值的不同就决定了input标签的功能和外观的不同
        -明文输入框 
            <input type="text" name="account" placeholder="请输入用户名">
                name:表单提交时,会作为参数的名称,结合输入的值进行匹配,组成 参数名=参数值的结构
                placeholder:提示
        -暗文输入框 
            <input type="password" name="password" placeholder="请输入密码">

        -输入框设置默认值 
            <input type="xxx" value="xxx">

        -单选框 
            <input type="radio" name="xx" value="xxx">
          注意点:
          1.默认情况下单选框不会互斥, 要想单选框互斥那么必须给每一个单选框标签都设置一个name属性, 然后                name属性还必须设置相同的值。
          2.要想让单选框默认选中某一个, 那么可以给input标签添加一个checked属性。
                3.单选框的value值,才是我们最终需要的值,并不是单选框显示的值。

        -多选框 
            <input type="checkbox" name="xxx" value="xxx">
           多选框默认选中 checked

        -提交按钮 
            <input type="submit">
          作用: 将表单中已经填写好的数据, 提交到远程服务器
          注意点:
          要想把表单中填写好的数据提交到远程服务器, 必须具备两个条件
          1.需要给form表单添加一个action的属性, 通过这个action属性指定需要提交到的服务器地址
          2.需要给需要提交到服务器的表单元素添加一个name属性
            -enctype
                application/x-www-form-urlencoded   
                    查询字符串,在发送前编码所有字符(默认),转换为?a=a&b=b&c=c

                multipart/form-data 
                  不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
                  -附件上传 <input type="file">
                      method="POST"
                      enctype="multipart/form-data"

                text/plain  
                    用于发送纯文本内容,空格转换为 "+" 加号,不对特殊字符进行编码,一般用于email之类的;
            
        -普通按钮 
            <input type="button" value="xxx">
          可以通过value属性来给按钮指定标题
          作用: 配合JS完成一些操作

        -图片按钮 
            <input type="image" src="">
           作用: 配合JS完成一些操作
        
        -重置按钮 
            <input type="reset" value="xx">
          作用: 用于清空表单中已经填写好的数据
          注意点:
          如果想想改重置按钮默认的按钮标题可以通过value属性来修改

        -隐藏域 
            <input type="hidden" name="xx" value="xxx">
            隐藏域
            作用 : 配合提交按钮将一些数据默默的悄悄的提交到服务器

    -label标签


  •   1.默认情况下文字和输入框是没有关联关系的, 也就是说点击文字输入框不会聚焦, 如果想点击文字时让                    对应的输入框聚焦, 那么就需要让文字和输入框进行绑定
      2.要想让输入框和文字绑定在一起, 那么我们可以使用label标签
      3.绑定的格式:
          3.1将文字利用label标签包裹起来
          3.2给输入框添加一个id属性
          3.3在label标签中通过for属性和输入框中的id进行绑定即可
            <label for="account">
              账号:
            </label>
            <input type="text" id="account">

    -select标签
      作用: 用于定义下拉列表
      格式:
      <select>
          <optgroup label="分组名称">
              <option>列表数据</option>
          </optgroup>
      </select>

      注意点:
      1.下拉列表不能输入内容, 但是可以直接在列表中选择内容
      2.可以通过给option标签添加一个selected属性来指定列表的默认值
      3.可以通过给option标签包裹一层optgroup标签来给下拉列表中的数据分类

    -textarea标签
      作用: 定义一个多行输入框
      格式:
      <textarea>
      </textarea>

      注意点:
      1.默认情况下输入框可以无限换行
      2.默认情况下输入框有自己的宽度和高度
      3.可以通过cols和rows来指定输入框的宽度和高度, 但是虽然指定了列数和行数, 但是还是可以无限往下                    输入
      4.默认情况下输入框是可以手动拉伸的

    -fieldset组件
      fieldset组件用于在一个web表单中对多个控件和标签进行分组
      格式:
      <form action="">
          <fieldset>
            <legend>请登录</legend>
            账号:<input type="text"><br>
            密码:<input type="password">
            <input type="submit">
          </fieldset>
      </form>

HTML5新增表单数据

-datalist标签
        1.作用: 给输入框绑定待选项
    <input type="text" list="xxx">
    <datalist id="xxx">
        <option>xxx</option>
    </datalist>

    2.datalist格式:
    <datalist>
        <option>待选项内容</option>
    </datalist>

    3.如何给输入框绑定待选列表
        1.搞一个输入框
        2.搞一个datalist列表
        3.给datalist列表标签添加一个id
        4.给输入框添加一个list属性,将datalist的id对应的值赋值给list属性即可

-progress <progress value="70" max="100">70%</progress>
    progress表示任务的完成情况,常用于进度条
        max 定义进度元素所要求的任务的工作量,默认值为1  
        value 定义已经完成的工作量,如果max值为1,该值必须是介于0~1之间的小数。

-邮箱 <input type="email">
    可以自动校验输入的内容是否符合邮箱的格式

-域名 <input type="url">
    可以自动校验输入的内容是否是URL地址

-数字 <input type="number">
    输入框中只能输入数字

-时间 <input type="date">
    可以通过日历来选择时间

-颜色 <input type="color">
    可以通过取色板来选择颜色

2.Http协议

HTTP是一种能够获取如 HTML 这样的网络资源的 protocol(通讯协议)。它是在 Web 上进行数据交换的基础,是一种 client-server 协议,也就是说,请求通常是由像浏览器这样的接受方发起的。

HTTP被设计于20世纪90年代初期,是一种可扩展的协议。它是应用层的协议,通过TCP,或者是TLS-加密的TCP连接来发送,理论上任何可靠的传输协议都可以使用。因为其良好的扩展性,时至今日,它不仅被用来传输超文本文档,还用来传输图片、视频或者向服务器发送如HTML表单这样的信息。HTTP还可以根据网页需求,仅获取部分Web文档内容更新网页。

表单:提交数据

交互:HTTP协议

客户端大前端 请求------>

<------响应 服务端 后端

HTTP报文的分类有两种:请求报文和响应报文。顾名思义,请求报文就是客户端向服务端发送请求的信号,响应报文就是服务端响应处理后回传给客户端的信号。

2.1.请求报文

HTTP 请求报文由四部分组成,分别是请求行、请求头、空行和请求体,其中空行也是组成部分之一,作用是进行分隔,必不可少。

2.1.1.请求行

第一行为请求行,由请求方法、URI和HTTP协议版本3个字段组成,它们之间用空格分隔,最后以回车和换行符结尾进行内容分割,表示接下来的内容(下一行开始的)不是请求行的内容。举例,GET /index.php HTTP/1.1,GET是请求方法,/index.php是URL,HTTP/1.1表示使用的HTTP版本为1.1。

这一行比较好理解,只有请求方法的类型比较多,有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT,其中GET、POST最为常用,这里详细介绍下。

- GET

GET最为常见的请求方式,通常用于当客户端要从服务器中读取文档时,比如点击网页上的链接或者通过在浏览器的地址栏输入网址的方式来浏览网页,使用的都是GET方式。需要注意的是使用GET方法请求时,请求参数和对应的值是跟在URL后面,通过问号(“?”)和and连接符(“&”)以及“=”号连接。GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。例如,/index.php?id=100&slec=yes,这样通过GET方式传递的数据直接表示在地址中。正式因为要传递的参数和值已经存在于URL中,所以采用GET方法请求的HTTP报文是没有请求体的。

很明显,GET方法把参数以及参数值都暴露在URL中了,好处显而易见,弊端就是不利于数据的保密和安全。另外浏览器对地址的字符长度是有限制的,虽然各自的标准不同,但一般不超过1024个字符,所以如果要传输的数据量比较大,不宜采用GET方法。

- POST

POST也是非常常见的请求方式,并且完美弥补了GET方法的不足。因为POST方法将要传输的数据封装在报文的请求体中,并且对传输的数据大小没有限制,所以可以传输大量的数据,并且因为数据封装在请求体中,没有直接暴露在URL中,所以比较私密和安全。

- 其他请求方式

其他请求方式用得比较少,其中HEAD方法偶尔用到,服务端接受到HEAD请求后只返回响应头,而不会发送响应内容,这样就提高了传输效率。所以当我们只需要查看某个页面的状态的时候,使用HEAD是非常高效的。

2.1.2.请求头

请求头部由键/值对组成,每行一对,键和值用冒号“:”(英文)分隔。请求头部告知服务器所有有关于客户端请求的信息,典型的请求头有:

User-Agent:产生请求的用户代理信息(浏览器信息): Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36等;

Accept:客户端可识别的内容类型列 :text/html,application/xhtml+xml,application/xml;

Accept-Language:客户端可接受的自然语言 - zh-CN,zh;q=0.8,en;q=0.6,id;q=0.4;

Accept-Encoding:客户端可接受的编码压缩格式 - gzip, deflate, sdch, br

Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机

connection:连接方式,有close和keep-alive两种。

close:告诉WEB服务器或代理服务器,在完成本次请求的响应后,断开连接

keep-alive:告诉WEB服务器或代理服务器。在完成本次请求的响应后,保持连接,以等待后续请求

Cookie:存储于客户端扩展字段,向同一域名的服务端发送属于该域的cookie - PSTM=1490844191; BIDUPSID=2145FF54639208435F60E1E165379255;

2.1.3.空行

用户进行内容分割,表示请求头到此为止,下一行的内容不再是请求头。

2.1.4.请求体

请求体包含的就是请求数据,正如上文提到的,当使用的是GET方法的时候,没有请求体。

2.2.响应报文

客户端向服务端发送请求之后,服务器接收并处理客户端发过来的请求后正常情况下会返回一个HTTP的响应消息,这个就是响应报文。

HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。形式上除了状态行之外,其他三个部分与请求报文类似。

2.2.1.状态行

格式为:HTTP-Version Status-Code Reason-Phrase CRLF。其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

1xx:指示信息--表示请求已接收,继续处理。

2xx:成功--表示请求已被成功接收、理解、接受。

3xx:重定向--要完成请求必须进行更进一步的操作。

4xx:客户端错误--请求有语法错误或请求无法实现。

5xx:服务器端错误--服务器未能实现合法的请求。

各类型常见状态代码、状态描述的说明如下:

200 OK:客户端请求成功。

400 Bad Request:客户端请求有语法错误,不能被服务器所理解。

401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。

403 Forbidden:服务器收到请求,但是拒绝提供服务。

404 Not Found:请求资源不存在,举个例子:输入了错误的URL。

500 Internal Server Error:服务器发生不可预期的错误。

503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。

2.2.2.响应头

和请求报文的请求头类似,响应头也由键值对组成,每行一对,键和值用英文冒号 : 分隔。响应头域允许服务器传递不能放在状态行的附加 信息,这些域主要描述服务器的信息和Request-URI进一步的信息,典型的响应头有:

Server:包含处理请求的原始服务器的软件信息;

Date:服务器日期;

Content-Type:返回的资源类型 (MIME);

Connection:连接方式;

close:连接已经关闭;

keep-alive:连接已保持,在等待本次连接的后续请求;

Cache-Control:缓存控 制;

Expires:设置过期时间;

Set-Cookie:设置 Cookie 信息。

2.2.3.空行


作为内容分割,表示以下不再是响应头的内容。

2.2.4.响应体

这个是服务器返回给浏览器的响应信息。