整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

AJAX学习day-1

:本人CSDN账户为:小白一枚2号,发这里主要是想赚点广告钱

(tmd打个勾八暑假工,学到技术才是硬道理)

注:文件布局:



一、AJAX的概念:


AJAX是浏览器与服务器进行数据通信的技术 =>把数据变活


二、AJAX的使用:


  1. 使用axios库,与服务器进行数据通信
    1. 基于XMLHttpRequest封装,代码简单
    2. Vue,React项目使用
  2. 学习XMLHttpRequest对象,了解AJAX底层原理


1.axios库的初步使用:

(非头条内部地址不让传,只好用这种形式)

引入JS:https://cdn.bootcdn.net/ajax/libs/axios/1.7.2/axios.min.js 或 https://cdn.bootcdn.net/ajax/libs/axios/1.7.2/axios.js
<script src="https://cdn.jsdelivr.net/npm/axios@1.7.2/dist/axios.min.js"></script>
使用axios函数详解:https://ykloveyxk.github.io/2017/02/25/axios%E5%85%A8%E6%94%BB%E7%95%A5/
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script src="https://cdn.bootcdn.net/ajax/libs/axios/1.7.2/axios.min.js"></script>
    <script>
        axios({
            url:'目标资源地址'
        }).then((result)=>{
            //对服务器返回的数据做后续处理
        })
    </script>
</body>
</html>
  1. 目标资源:http://hmajax.itheima.net/api/province:省份列表数据


2.使用URL进行参数查询:

URL后加 ?pname=河北省

语法:http://xxx.com/xxx/xxx?参数名1=值1&参数名2=值2

axios({
                url: 'http://hmajax.itheima.net/api/area',
                params: {
                    pname: `${query1.value}`,// 参数1
                    cname: `${query2.value}` // 参数2
                }
            }).then((result) => {
                console.log(result.data.list);
                ul.innerHTML = result.data.list.map((x) => `<li>${x}</li>`).join('')
                console.log(result.data.list.map((x) => `<li>${x}</li>`));
            })


3.常用的请求方法与数据提交:

概念:对服务器资源要执行的操作

axios的请求配置:

请求方法

操作

GET(get)

获取数据

POST(post)

提交数据

PUT(put)

修改数据(全部)

DELETE(delete)

删除数据

PATCH(patch)

修改数据(部分)

url :请求的URL网址

method :请求的方法,GET可以省略(不区分大小写)

params:查询参数

data:提交的数据

//获取数据
axios({
            url: '目标资源地址',
            //method: 'get',
            params:{
                参数名:值
            }
        }).then((result) => {
            //对返回的数据的处理
        })
//提交数据        
axios({
            url: '目标资源地址',
            method: 'post',
            data: {
                参数名: 值
            }
        }).then((result) => {
            //对返回的数据的处理
        })

4.axios的错误处理:

服务器返回的信息:Uncaught大对象里的data

语法格式:

 axios({
            //请求项
        }).then(result=>{
            //处理数据
        }).catch(error=>{
            //处理错误
        })

三、HTTP协议:

大佬方法:

https://blog.csdn.net/sanda_nd/article/details/125513125

1.请求报文:

HTTP协议:规定了浏览器发送及服务器返回内容的格式

请求报文:浏览器按照HTTP协议要求的格式,发送给服务器的内容

请求报文样例:

组成部分:

  1. 请求行:请求方法,URL,协议
  2. 请求头:以键值对格式携带的附加信息,例如:Content-Type(本次浏览器携带的内容类型)
  3. 空行:分割请求头和内容数据,空行后是内容数据(发给服务器的资源)
  4. 请求体:发送的资源

查看请求报文:

如同所示:就是请求报文经过计算机解析后的形式


2.用请求报文排查错误:

查看提交的信息,判断错误位置


3.响应报文:

HTTP协议:规定了浏览器发送及服务器返回内容的格式

响应报文:服务器按照HTTP协议要求的格式,发送给浏览器的内容

  1. 响应行(状态行):协议,HTTP响应状态码(400表示响应失败)、状态信息
  2. 响应头:以键值对的格式携带的附加信息,如:Conttent-Type
  3. 空行:分割响应头
  4. 响应体:返回的资源

查看响应报文:

HTTP状态码:用来表明,请求是否成功

状态码

说明

1xx

信息

2xx

成功

3xx

重新定向消息

4xx

客户端错误

5xx

服务端错误


常见状态码:

200:成功

404:服务器找不到资源

四、接口文档:

接口文档:描述接口的文章

接口:使用AJAX和服务器通讯是使用的URL,请求方法,及参数

AJAXS接口:欢迎使用 - AJAX阶段 (apifox.com)

https://apifox.com/apidoc/project-1937884/doc-1695440

五、from-serialize插件的使用:

作用:快速地搜集表单元素的值

引入插件:form-serialize.js插件下载&引用-CSDN博客

https://blog.csdn.net/ITiT12333/article/details/138261386
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="../bootstrap-5.3.0-alpha1-dist/css/bootstrap.min.css">
</head>
​
<body>
    <form action="javascript" class="example">
        <input type="text" name="un">
        <input type="password" name="pw">
        <!-- <input type="button" class="btn" value="提交"> -->
    </form>
    <button class="btn">提交</button>
    <script src="https://cdn.jsdelivr.net/npm/axios@1.7.2/dist/axios.min.js"></script>
    <script src="../from-serialize/from-serialize.js"></script>
    <script>
        const input = document.querySelector('.example')
        const btn = document.querySelector('.btn')
        btn.addEventListener('click', () => {
            let data = serialize(input, { hash: true, empty: true })
            console.log(data);
        })
    </script>
</body>
​
</html>

必须使用:

<form action="javascript" class="example">
        <input type="text" name="un">
        <input type="password" name="pw">
        <!-- <input type="button" class="btn" value="提交"> -->
    </form>

的格式

form用来确定区间

name是键名

value是值

其中:hash 设置获取的数据结构:

  1. true:获取得到JS对象
  2. false:获取得到查询字符串

empty 设置是否获取空值:

  1. true:允许获取空值
  2. false:bu获取空值

六、案例-整合登入:

代码:

<!DOCTYPE html>
<html lang="en">
​
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="../bootstrap-5.3.0-alpha1-dist/css/bootstrap.rtl.min.css">
    <style>
        .banner {
            width: 700px;
            height: 700px;
            margin: 20px auto;
        }

        .row {
            margin-bottom: 15px;
        }

        .alert {
            transition: all .5s;
        }

        .unshow {
            opacity: 0;
        }
    </style>
</head>
​
<body>
    <div class="banner">
        <h1>欢迎-登入</h1>
        <div class="alert unshow" role="alert">
        </div>
        <form class="login-form">
            <div class="row g-3 align-items-center">
                <div class="col-auto">
                    <label for="username" class="col-form-label">用户名:</label>
                </div>
                <div class="col-auto">
                    <input type="text" id="username" name="username" class="form-control"
                        aria-describedby="passwordHelpInline">
                </div>
            </div>
            <div class="row g-3 align-items-center">
                <div class="col-auto">
                    <label for="password" class="col-form-label">密码:</label>
                </div>
                <div class="col-auto">
                    <input type="password" id="password" name="password" class="form-control"
                        aria-describedby="passwordHelpInline">
                </div>
                <div class="col-auto">
                    <span id="passwordHelpInline" class="form-text">
                        Must be 6-20 characters long.
                    </span>
                </div>
            </div>
        </form>
        <button class="btn btn-primary">登入</button>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/axios@1.7.2/dist/axios.min.js"></script>
    <script src="../from-serialize/from-serialize.js"></script>
    <script>
        // const un = document.querySelector('#username')
        // const pw = document.querySelector('#password')
        const input = document.querySelector('.login-form')
        const btn = document.querySelector('button')
        const alt = document.querySelector('.alert')

        function alertFn(msg, isSuccess) {
            alt.classList.remove('unshow')
            let bgStyle = isSuccess ? 'alert-success' : 'alert-danger'
            alt.classList.add(bgStyle)
            alt.innerText = msg
            // alert('用户名或密码错误')

            setTimeout(function () {
                alt.classList.add('unshow')
                alt.classList.remove(bgStyle)
            }, 2000)
        }


        btn.addEventListener('click', () => {
            let data = serialize(input, { hash: true, empty: true })
            console.log(data);
            if (data.username.length < 8) {
                alertFn('用户名长度不能少于8位', 0)

                return //阻止代码继续执行
            }
            else if (data.password.length < 6) {
                alertFn('密码长度不能少于6位', 0)

                return //阻止代码继续执行
            }
            axios({
                url: 'https://hmajax.itheima.net/api/login',
                method: 'post',
                data: {
                    username: data.username,
                    password: data.password
                }
            }).then(result => {
                console.log(result);

                alertFn(result.data.message, 1)

            }).catch(error => {
                console.log(error);

                alertFn(error.response.data.message, 0)
            })
        })
    </script>
</body>
​
</html>

效果:

1.初始界面:



2.直接登入时或用户名长度少于8位时(直接点提交):



3.无密码时或密码少于6位时(用户名为 : itheima007):



4.登入失败时:



5.成功登入(用户名:itheima007 密码:7654321):

了一整晚三个小时给大家整合的配色网站合集

希望看完可以评论点赞收藏或者转发都可以

adobe color

https://color.adobe.com/zh/explore/

搜索过去4000年来使用的180个调色板

https://colorleap.app/home

Picular是使用谷歌图像搜索的火箭快速原色发生器

https://picular.co/

自定义配色网站-我进去就蒙了

https://colourco.de/

对比度测试网站

https://colorable.jxnblk.com

Palettte App-最终的调色板编辑和重新映射工具

https://palettte.app

Colorinspire-精选色彩灵感

https://www.colorinspire.io

ColorSpace-调色板生成器和颜色渐变工具

https://mycolor.space

Pigment-大力推荐,谁用谁知道

https://pigment.shapefactory.co

Adobe Color-教科书式的取色(同类色、互补色、对比色...)

https://color.adobe.com/zh/create/color-wheel/

Colors & Fonts-调色板和字体配对灵感的集合

https://www.colorsandfonts.com

HueSnap-创建调色板并与他人共享

https://www.huesnap.com

Culrs-好像没什么特别

https://culrs.com/#/

Eva Design System-有点卡

https://eva.design

Scale-我词穷了,但是真的很棒

https://hihayk.github.io/scale/

Site Palette-真的编不下去了

https://palette.site

BrandColors-要不你们来试试?

https://brandcolors.net

Colorwise-Product Hunt中搜索投票最多的产品

https://colorwise.io

HTML Color Codes-作用不是太大

https://htmlcolorcodes.com

ColorBox-生成颜色集的颜色工具

https://www.colorbox.io

Generate — Coolors.co-一个打开很快的配色网站

https://coolors.co

Cloudflare Design-用于界面设计的调色板工具

https://cloudflare.design/color/

Instant Duotone Effect Generator-双色图

https://medialoot.com/duotones/

Color Tool-为UI创建和共享调色板

https://material.io/resources/color/#!/?view.left=0&view.right=0

Blendy-类似ps色彩蒙版

https://blendy.ml

LOL Colors-水滴形调色盘

https://www.webdesignrankings.com/resources/lolcolors/

Color Hunt-谁用谁知道

https://colorhunt.co

ColorMe-可视化CSS颜色功能

https://colorme.io

Gradient Hunt-渐变色

https://gradienthunt.com

ColorSpark-随机生成单色/渐变

https://colorspark.app

Sip-适用于Mac的Sip Color Picker

https://sipapp.io

CoolHue 2.0-获得免费的草图渐变颜色插件和渐变集合调色板

https://github.com/webkul/coolhue/releases

Color Koala-打开迅速

https://colorkoala.xyz

SchemeColor-用就完了

https://www.schemecolor.com

Free Mesh Gradient Collection-流体渐变

https://www.ls.graphics/meshgradients

WebGradients-支持下载psd和sketch格式

https://webgradients.com

Gradient Buttons-渐变

https://gradientbuttons.colorion.co

ColorKit-编不下去了,自己试试

https://colorkit.io

Eggradients

https://www.eggradients.com

Cool Backgrounds-超级牛逼的网站一定要试试大力推荐*****

随便下载一个都能去昵图上卖共享分你信我!!!

https://coolbackgrounds.io

GradPad-渐变色

http://ourownthing.co.uk/gradpad.html

Khroma-普通配色

http://khroma.co/train/

Color palettes-配色推荐

https://www.canva.com/colors/color-palettes/

Color Safe-搭配推荐

http://colorsafe.co

Paletton-

https://paletton.com

Colordot-不想配图,自己感受

https://color.hailpixel.com

Colors-

https://klart.io/colors

Contrast Ratio-轻松计算颜色对比度

https://contrast-ratio.com/#red-on-blue

Color Lisa-字体配色

http://colorlisa.com

Color Designer

https://colordesigner.io

Color.review-摸不着头脑

https://color.review

Blend-

http://www.colinkeany.com/blend/

Contrast-

https://usecontrast.com

Grabient-渐变

https://www.grabient.com

言:万物之始,大道至简,演化至繁。水滴不染尘世浮华,方能纯净如冰川灵动如丝绒。落红不逐春日绚烂,方有一年春尽一年春。

一、html5的介绍

1.1介绍

html号称超文本标记语言,代表着浏览器技术发展的一个阶段。html版本1到版本5的更新迭代都是由组织W3C管理的。当时到html4.1的时候,W3C组织就声称不再更新版本了。而改用XHTML。但是由于浏览器的各种不兼容的问题,于是乎W3C这个组织就和其他的浏览器产商一起联合起来将这门语言再次更新到html5

比喻:

html5 >机器人的骨骼

css3 >机器人的外在修饰

js > 机器人的行为如行走、抬腿

Jquery > 封装好的控制行为的库,可以提高效率

1.2优势

  • 易用性

  • 支持视频和音频

  • 互动性高

  • 支持移动设备

  • 未来的趋势

1.3开发工具

HBuild、WebStrom、sublime Text

二、代码规范

2.1代码规范

新建一个Web项目

相比html4来说,html5的语法更加简洁并且在规定上也更加宽松。

  • 单标签不用写关闭符号

  • 双标签省略结束标签

  • html、head、body、colgroup、tbody可以完全省略

  • 删除其中一些,打开浏览器的检查元素功能,也不会报错

三、各类标签

3.1文本标签

  • b标签:表示关键字和产品名称。<b>html</b>其实它的实际作用就是将一段文字加粗。但是并不是特别强调它的重要性。比如说:在一段文字当中出现的某些关键字或者产品的名称就可以用b标签

  • strong标签:表示比较重要的文字<strong>html</strong>它的作用也是加粗,只是它在强调一段比较重要的文本

  • br单标签:换行

  • wbr标签:安全换行you've no idea how worried <wbr> i was当用户对网页进行缩放的时候可能会有一些单词被挤到下一行。如果不行某个单词被分离的话,可以使用安全换行标签

  • i标签:倾斜。em标签语义一样,但em表示强调<i>倾斜标签</i>它用于表示外文词汇或科技术语

  • s标签:删除线。del标签表示强调。<s>html</s>删除线

  • u标签:给文字加下划线。ins标签表示强调<u>html</u>下划线

  • small标签:添加小号字体<small>放小一号</small>将文本放小一号。通常用于免责声明和澄清声明。

  • sub和sup标签:添加上标和下标X<sub>5</sub>和Y<sup>2</sup>(sub和sup长差不多,这个要如何去记忆呢?大家可以看到b的肚子在下面,所以呢它是下标,而p的头部在上方,所以记录是上标。那这样一来是不是就感觉清晰了许多呢)

  • q标签:引用来自其它出处的内容<q>有朋自远方来</q>

  • ruby标签:语言元素。常用于帮助读者正确发音。<ruby>夔<rp>(</rp><rt>kui</rt><rp>)</rp></ruby><rp><rt>用来帮助读者掌握表意语言文字的正确发音。比如说汉语拼音在文字的上方。

  • bdo标签:设置文字方向<bdo dir="rtl">设置文字方向</bdo>dbo必须使用属性dir才可以设置,一共两个值:rtl从右到左和ltr从左到右。一般默认是ltr。还有一个bdi元素也是处理方向的,由于是特殊语言的效果,并且主流浏览器有些不支持,所以可以忽略。

  • mark标签:突出显示文本<mark>突出显示文本</mark>加上一个黄色的背景,黑色的字。从语义上来看,与上下文相关而突出的文本,用于记号。

  • a标签:超链接a元素属于文本元素,有一些私有属性。

    href属性 <a href="http://www.baidu.com">百度</a> 这个属性是必须的,否则a元素就变得毫无意义。它的属性值意味着点击跳转到指定的外部网站去。

    target属性<a href="http://www.baidu.com" target="_blank">百度</a> 这个属性告诉浏览器希望打开的新窗口显示在哪里。_blank表示在新窗口中打开文档。_self表示在当前窗口打开文档。默认_self。(_parent和_top这些要结合框架来使用,但是基本上用得已经很少了。)

    锚点设置:用于将同一个文档中的另一个元素移入视野。说通俗一点就是通过点击这个锚点定位到页面中的某个位置。

<a href="#1">第一节</a>

<a href="#2">第二节</a>

<a href="#3">第三节</a>

</br>

==========以下全都是分隔符============</br>

==========以下全都是分隔符============</br>

==========以下全都是分隔符============</br>

<a name="1">第一节的内容 我☝应该说点啥的。

==========以下全都是分隔符============</br>

==========以下全都是分隔符============</br>

==========以下全都是分隔符============</br>

</a>

==========以下全都是分隔符============</br>

==========以下全都是分隔符============</br>

&hellip;&hellip;以上省略一万行&hellip;&hellip;

==========以下全都是分隔符============</br>

<a name="2">第二节的内容 我☝应该说点啥的。

==========以下全都是分隔符============</br>

==========以下全都是分隔符============</br>

==========以下全都是分隔符============</br>

</a>

3.2分组标签

顾名思义,分组元素就是用来组织相关内容的html元素,对它们进行清晰有效的分类。

  • p标签:表示段落<p>这是一个段落</p> <p>这是一个段落</p>p标签就是将内部包含的文本形成一个段落。它们可以自动换行,而且段落与段落之间保持一定量的空隙。

  • div标签:通用分组<div>这是一个块标签</div> <div>这是另一个块标签</div>在早期的版本中经常用到,用div将其他数据或标签包裹起来,进而进行布局。但是在html5中,渐渐被其他元素替代。(它与p标签的区别就是两段文本间没有空隙。空隙间隔和br标签换行一样)

  • blockquite标签:引用大段其他地方的内容<blockquote>引用别人的内容的辅导费打发打发可以换行哦他也有首尾缩进的效果</blockquote>有段落空隙的功能,还包含了首尾缩进的功能。

  • pre标签:按照原格式展示数据<pre> 我就是 长这样的 参差不齐 </pre>(有时候某些文字就想要按照原来的格式显示出来就要用到pre标签。它就是将数据原封不动的显示出来)

  • hr标签:单标签。添加一条分割线。

  • ul和li标签:添加无限列表

<ul>

<li>貂蝉</li>

<li>大乔</li>

<li>小乔</li>

<li>孙尚香</li>

</ul>

ul标签表示无序列表(就像咱们平时说的无符号整形,在前面也是加了一个u),而li标签则表示内部的列表项

  • ol和li:表示有序列表

  • start属性:表示从第几个序列开始统计。<ol start="2">

  • reversed属性:是否倒序排列。<ol reversed>(不过这个属性有很多的浏览器不支持,所以要谨慎使用)

  • type属性:表示列表的编号的类型 <ol type="A">

  • value属性:这是属于li的属性。表示强行设置某个项目的编号。<li value="7">安琪拉</li>

  • dl、dt、dd:列表标签

<dl>

<dt>第一份内容</dt>

<dd>第一行详细内容</dd>

<dd>第二行详细内容</dd>

<dl>

虽然说这三个标签是一个整体,但是dt和dd标签并非都必须出现

  • figure和figcaption标签:使用插图的意思。一般用于图片的布局。

<figure>

<figcaption>这里有一张图哦</figcaption>

<img src="img.png">

</figure>

3.3表格标签

表格的用途是以网格的形式显示二维数据。开发者可以对表格中的元素标签设置不同的属性如边框宽度、颜色等使表格呈现出不同的效果。

3.3.1 标签

  • table:表示表格标签

  • tr:代表某一行

  • td:代表一个单元格。

<table border="1" style="width:300px;">

<tr> <!--相当于行-->

<td>王昭君</td> <!--相当于每行中的每一列-->

<td>沉鱼落雁</td>

<td>法师</td>

</tr>

<tr> <!--相当于行-->

<td>貂蝉</td> <!--相当于每行中的每一列-->

<td>羞花闭月</td>

<td>刺客</td>

</tr>

</table>

  • th:代表标题单元格。代表标题,作用是将内部文字居中且加粗。

<tr>

<th>姓名</th>

<th>特征</th>

<th>职业</th>

</tr>

  • thead:代表表头。(某些时候,网页上的表头是由js动态生成的。有可能没按照先后的顺序排列,如此一来表头就有可能显示到第二行、第三行甚至是表尾。用thead将tr括起来可以让数据永远显示在第一行)

<thead>

<tr>

<th>姓名</th>

<th>特征</th>

<th>职业</th>

</tr>

  • tfoot:表示表尾:与表头相反

  • tbody:表示表格的主体部分

  • (这里非常建议用分主体、表头、表尾的方式写。因为到后期使用CSS样式的时候只要拿到某个标签就可以设置总体的样式了,这样就会非常方便)

  • caption:添加表格的标题

  • colgroup:群组。用于设置列的属性。默认设置第一个(有的时候需要设置单独列的属性,如果说我只想设置第二列的属性,则需要把第一列的设置成白色)

<!--<table border="1" style="width:300px;">-->

<colgroup style="background:white;" span="1"></colgroup> <!--设置第一个颜色为白-->

<colgroup style="background:red;" span="1"></colgroup> <!--设置第二个颜色为红 span代表一列-->

  • col:群组的子标签。更加灵活的设置列属性。通过占位符设置不需要的属性。

<colgroup>

<col> <!--占位,表示第一列不设置-->

<col style="background: pink;">

</colgroup>

3.3.2属性

  • border:表示边框的宽度 <table border="1"></table>

  • style:通用属性。在css中做详解。

  • colspan:合并列 <td colspan="3">统计</td>这句代码表示共占三个单元格

  • rowspan:合并行

<tr>

<th rowspan="4">学员</th>

<th>姓名</th>

<th>特征</th>

<th>职业</th>

</tr>

3.3文档元素

文档元素的主要作用是划分各个不同的内容,让整个布局更加清晰。 进入代替div。让整个布局元素都具有语义。

  • header标签:表示页面头部。通常包括标题或导航等内容。下面内容会换行(在页面中一般会用样式将它设置到居中)

  • footer标签:表示页面的尾部,一般用于版权声明、友情链接等。

  • h1-h6标签:标题标签,有字体加粗的效果。从1-6字号依次减小

<h1>这里是一个大标题</h1> <h3>这里是一个副标题</h3>

  • hgroup:组合标题。hgroup的作用就是当多个标题出现,干扰到一对或多个本身需要整合的标题。

<header>

<hgroup>

<h1>这里是一个大标题</h1>

<h3>这里是一个副标题</h3>

</hgroup>

</header>

<footer>

<h4>这里是尾部的副标题</h4>

这里存放页面的尾部:如版权声明,友情链接

</footer>

如上面那段代码,头部的h4标题就能与h1绑定起来,从而和尾部的h4分离。

  • section标签: 定义一个文档的主题内容

  • nav标签: 给文档页面添加一个导航

  • aritcle标签:添加一个独立成篇的文档(像平常看到的论坛,贴吧,评论都有自己的头、尾和内容等)

<article>

<header>

<nav>&hellip;&hellip;</nav>

</header>

</article>

  • aside标签:生成注释栏。

<aside>这是一个注释栏</aside>

  • address表示文档或者是article元素的联系信息

  • <address>联系信息</address>

  • 本身有倾斜的效果。如果是在article元素下表示其下的联系信息,如果是在body元素下表示整个文档的联系信息

3.4嵌入元素

嵌入元素主要功能是把外部的一些资源插入到html中。

  • img标签:用于显示图片

  • src:嵌入图像的url

  • alt:(如果图片能正常显示则没有任何效果。若图片加载不成功会出现备用内容)

  • width/height:定义图片的宽度和高度,单位是像素<img src="img.png" alt="风景图" width="320" height="400"/>

  • ismap:获取到图片区域的像素点加入了ismap属性之后,点击图片在浏览器中就会获得图片被点击的地方的像素点。(把文件在目录中打开,讲文件拷贝到谷歌浏览器打开就能看见)

<a href="index.html">

<img ismap src="img_5.jpg" alt="风景图">

</a>

  • usemap:创建分区的响应图。比如说点击图片的某一部分,可以跳转到某一个网页。(当点击了coords这块区域时,跳转到指定的网页)

<img src="img_5.jpg" usemap="#Map" />

<map name="Map">

<area shape="circle" coords="31,28,112,100" href="http://www.baidu.com" target="_blank" alt="方形">

</map>

  • iframe标签:嵌入另一个文档。表示在一个页面内建立一个区域引入另一个页面。

<a href="index.html" >index</a>

<a href="http://www.baidu.com" target="in">百度</a>

<iframe src="http://www.baidu.com" width="300" heigth="300" name="in"></iframe>

  • progress标签:用于显示进度

  • 该标签会产生一个进度条,一般我们会用js代码来控制其内部的值。(当前值用value来表示,而最大值用max来表示)

<progress value="30" max="100"></progress>

  • meter标签:显示范围里的值(类似于进度条,可以规定最大值和最小值max/min。low值规定它的值过低,high表示值过高。而optimun表示最佳值,但是这个属性是呈现不出效果的)

<meter value="90" min="10" max="100" low="40" high="80" optimum="60"></meter>

3.5音频和视频标签

音频和视频文件其实都只是一个容器文件。视频文件包含了音频轨道、视频轨道和其他一些元数据。视频播放时,音频轨道和视频轨道是绑定在一起的。元数据包含了视频的封面、标题字幕等信息。在网页实现中,有很多的浏览器厂商都有自己的标准,所以html5规范也没有强制指定编解码器了。所以在网页上嵌入视频和音频时,最好提供mp4格式和webM格式的视频。否则有可能由于浏览器不兼容的问题导致视频不能播放。

  • video标签: 视频标签属性:

  • src:视频资源的url

  • width:视频宽度

  • height:视频高度

  • <video src="test.mp4" width="320" height="400"></video>

  • controls:设置后显示播放控件(未设置这个属性时,视频就像一张图片,设置controls之后才能显示视频播放控件)

  • <video src="test.mp4" width="320" height="400" controls></video>

  • autoplay:表示立即播放视频

  • loop:反复播放视频(也就是说在播放结束之后会重新播放视频)

  • muted:设置之后,视频会处于静音状态

  • poster:指定视频数据载入时显示的图片。(相当于视频的一个封面)

<video src="test.mp4" width="320" height="400" controls

poster="img_5.jpg"></video>

  • preload:预加载。不设置会在第一次播放自动缓存。如果值为none会直到用户点击时再加载视频。如果值为metadata表示播放之前只加载第一帧。auto是默认的,表示要求浏览器尽快的加载视频。

  • 兼容多个浏览器 source标签

<video src="test.mp4" width="320" height="400" controls poster="img_5.jpg">

<source src="test.webm"/>

<source src="test.mp4"/>

</video>

  • audio标签:用于嵌套音频内容。属性与视频元素类似。只是没有宽高设置和图片。

  • <audio src="test.mp3" controls></audio>

3.6表单标签

表单标签是用于获取用户的输入数据的。

  • form标签:表示定义html表单。用该标签包含的标签具有提交功能。也就是说,在浏览器的地址栏里面能获取到用户的信息。(如果不定义表单,那么它是无法提交数据的)

<form>

用户名:<input name="user">

<button>提交</button>

</form>

属性

  • action:表示表单提交到的页面(也就是要把数据传入到哪个页面中)

  • method:表示表单的提交方式。默认是get。而get和post请求的区别就是post后面不跟请求体。也就是用户信息。相对来说更加的安全。(一般来说,get是用于超链接提交居多,post用作表单提交居多)

  • <form method="post" action="http://www.haosou.com"></from>

  • enctype:表示浏览器对发送给服务器的数据采用的编码格式。有三种格式。默认是不能将文件上传到服务器&rdquo;application/x-www-form-urlencoded&ldquo;、multipart/form-data用于将文件上传到服务器、text/plain不建议使用

  • name:设置表单名称,以便程序调用

  • target:提交的目标,与超链接无异

  • autocomplete:设置浏览器记录用户输入的信息。分为on和off两个值。默认为on。

  • novalidate:设置是否执行客户端数据有效性检查

  • input标签:表示用来收集用户输入数据的控件。它默认会出现一个单行的文本框。

  • type:文本框的类型。值为text时表示单行文本框;值为password表示密码框;值为search时,除了火狐浏览器的其他浏览器外,会显示一个叉来取消搜索内容,值为number时,表示只限于数字输入;值为range时,生成一个数值范围文本框;当type为date系列时,可以获取日期和时间的值,有六种形态date、month、time、week、datetime、datetime-local;当值为color代表可以获取不同的颜色;当值为checkbox、radio时表示复选框和单选。单选的name值必须一样。checked表示默认勾选状态值为img是表示产生一张图片按钮,后面可以接src,alt,width等熟悉值为email,tel,url时表示输入电子邮件、电话和网址格式值为hidden时,生成一个隐藏控件(看不见,但提交的时候会显示,一般用于关联主键id提交)值为file的时候,表示上传文件。accept属性表示限制文件<input type="text">

音乐<input type="checkbox" checked>

体育<input type="checkbox">

<input type="radio" name="sex" value="男" checked>男

<input type="radio" name="sex" value="女">女

<input type="hidden" value="1" name="id">

<input type="file" accept="image/gif">

  • maxlength:设置文本框最大字符长度

  • readonly:设置文本框为只读状态。可以提交但是不能修改文本框的值。

  • placeholder:占位符

  • size:设置文本框的宽度

  • required:表明用户必须输入一个值,否则无法通过输入验证

  • <input type="text" list="abc" required>

  • autofocus:让光标聚焦在某个input元素上,方便用户直接输入。<input name="user" autofocus>

  • disabled:禁止input元素 (连点击都不能)

  • list:为文本框提供建议值

<form>

<input type="text" list="abc">

<button>提交</button>

</form>

<datalist id="abc">

<option value="1">湖南</option>

<option value="2">海南</option>

</datalist>

  • value:默认在输入框内出现的值

  • form:与表单外的数据挂钩一遍提交

<form id="register" name="reg" action="index.html">

用户名:<input name="user">

<button>提交</button>

</form>

年龄:<input name="age" form="register">

  • label标签:把文字和input标签包裹起来可以方便设置样式,并且当用户点击文字的时候,光标会自动移入到对应的input框。(如果只是设置了文字用label包裹,又想点击文字将标签自动移入对应的框,可以将label的属性for的值设置成与input的id设置成一样)

<label for="user"> 用户名:</label>

<input id="user" name="user">

  • fieldset标签:对表单进行编组。三个属性name、form、disabled

  • legend标签:添加分组说明的标签(也就是说给分组加上一个标题)

<fieldset>

<legend>注册分组</legend>

<label for="user"> 用户名:</label>

<input id="user" name="user">

<button>提交</button>

</fieldset>

  • button标签:创建一个按钮。type属性有三个值,submit表示提交,reset表示重置,也就是把input的值变成初始值。button表示一个普通的按钮。

  • select标签:下拉列表。需要和option标签配合使用。

  • name属性:设定提交时的名称

  • disabled属性:将下拉列表禁用

  • form属性:将表单外部与内部挂钩

  • size属性:下拉列表的个数

  • multiple属性:设置是否可以多选

  • required:选择验证,必须选择后才能通过

<select name="fruit" size="5" multiple >

<!--value值是真正要提交上去的值,而后面的是显示到页面的值-->

<option value="1">花花菇凉</option>

<option value="2">文小喵</option>

</select>

optgroup标签:对列表进行分组选择。

<form action="http://www.baidu.com">

<select name="fruit" multiple size="5">

<optgroup label="表情包">

<option value="1">花花菇凉</option>

<option value="2">文小喵</option>

</optgroup>

<optgroup label="书">

<option value="4" selected>微微一笑很倾城</option>

<option value="5">神雕侠侣</option>

</optgroup>

</select>

<button>提交</button>

</form>

  • textarea标签:生成一个可变大小的多行文本框

<!--wrap表示是否插入换行符 有soft和hard两种。hard提交之后在地址栏可以看见%插入的隐藏换行符-->

<textarea name="content" rows="20" cols="30" wrap="hard"></textarea>

  • pattern:正则表达式。开头和结尾用^和$ novalidate属性表示不要验证该表单

<input type="text" placeholder="请输入区号和座机" pattern="^[\d]{2,4}\-[\d]{6,8}$">

html对网页页面的布局或者是表单验证等功能都相对简陋,并且不同的浏览器支持的成熟度是不尽相同的。因此在大部分情况下,还是要借助jsjqury等前端库,来呈现丰富多彩的验证效果。