WEB开发基础篇 ---- 进阶篇HTML5(上)

此篇文章为进阶知识点HTML5的学习,为本人学习时的笔记记录,同时也适合初学者学习。喜欢的友友可以关注一下,后续会补充JavaScript,TypeScript,vue2.0,vue3.0以及uni框架等等一系列的前端学习文章。(强者不喜请绕道,本人内心脆弱,勿喷)


1. 首先了解一下什么是HTML5?

HTML5是构建Web内容的一种语言描述方式,HTML5是互联网的下一代标准,是构建以及呈现互联网内容的一种语言方式,被认为是互联网的核心技术之一。HTML产生于1990年,1997年HTML4成为互联网标准,并广泛应用于互联网应用的开发。

HTML5是Web中核心语言HTML的规范,用户使用任何手段进行网页浏览时看到的内容原本都是HTML格式的,在浏览器中通过一些技术处理将其转换成为了可识别的信息,HTML5在从前HTML4.01的基础上进行了一定的改进。

以上内容是我复制过来的,其实只需要了解一下就好了,就是讲了一下HTML5的发展史😀

HTML5的学习更重要的是了解它相较于HTML新增了哪些特性与知识点,下面我们就来学习一下吧


2. HTML5新增了哪些特性?

相较于HTML而言,HTML5还是增加了不少东西的,这些新特性的引入使得我们的开发更加的方便与高效,同时也使我们开发的网页拥有更多的功能,使用户体验更好。这篇文章我将列举HTML5新增的特性,并且对这些特性的功能与使用一一讲解。

HTML5新增的特性有如下10个点👇(全部列举出来后一看好像还有点多)

  1. 在标签方面,HTML5新增了语义化标签
  2. 增强型表单(如:新的表单输入类型,新的表单元素,新的表单属性)
  3. 多媒体标签(音频元素和视频元素)
  4. Canvas绘图(图形绘制,路径显示,文本,渐变以及图像等等)
  5. SVG绘图(与canvas元素的区别)
  6. 地理定位(可以在web网页查看地理位置)
  7. 拖放API
  8. web worker(一定程度上解决了单线程带来的性能问题)
  9. web storage(HTML5新增的好东西,存数据用的,经常用到)
  10. web socket(基于TCP协议实现了简单且高效的通讯)

在了解HTML5新增的特性后,接下来就来细细学习一下。


3. 语义化标签

什么是语义化标签?虽然这个词看起来很高大上,其实也没那么高深,说白了就是在合适的位置做合适的事情。语义化标签的含义就是这一句话。需要知道的是语义化标签并没有特殊的含义,目的只是单纯为了方便开发者,使代码结构更清晰易懂,那HTML5新增了哪些语义化标签呢?一共有如下这些👇

  • <header>    文档头部区域,一般用于规定文档的页眉
  • <nav>         导航区域,一般用于定义导航链接
  • <section>    节区域,用于定义文档的节
  • <article>      文章区域,用于定义文档的文章
  • <aside>       定义页面内容以外的内容(多用于广告。。)
  • <footer>      定义文档或节的页脚

上述6块区域在页面的布局情况大概是这样的👇

 除此之外,还有其他的语义化标签,虽然不常用,但还是得列举出来作为了解。

  • <main>             规定文档的主内容
  • <mark>             定义重要的或强调的文本
  • <figure>            规定自包含内容,比如图示、图表、照片、代码清单等
  • <figcaption>     定义👆标签的标题
  • <time>              定义日期
  • <details>          定义用户可查看或隐藏的细节
  • <summary>      定义👆标签的可见标题

4. 增强型表单

1. 新的表单输入类型

HTML表单用于获取用户输入不同类型的数据,根据不同的type值,可以对不同类型的值进行校验。在HTML的学习中,我们了解到input的type值可以为text,password,radio和submit,而在HTML5中则增加了更多的类型,这些类型提供了更好的控制与校验👇

email类型:当type为email时可自动校验输入的值是否为邮箱类型,就不用在JavaScript用正则表达式验证了 

Email:<input type="email" name="useremail" />

url类型:当type为url时可自动校验是否为url的标准格式

Linkpage:<input type="url" name="url" />

number类型:当type为number时可自动校验是否为数字格式

Number:<input type="number" name="num" min="1" max="10" />

同时其属性还有以下这些👇

range类型:当type为range时可用于包含一定范围内数字值的输入域。(range 类型显示为滑动条)

<input type="range" name="range" min="1" max="10" />

Date pickers类型:用于选取日期和时间。

Date:<input type="date" name="user_date" />

用于选取日期和时间的输入类型:

  • date 选取日、月、年
  • month 选取月、年
  • week 选取周和年
  • time 选取时间(小时和分钟)
  • datetime 选取时间、日、月、年(UTC时间,有时区)
  • datetime-local 选取时间、日、月、年(本地时间)

search类型:type类型为search时会呈现一个搜索引擎的输入框

Search Google:<input type="search" name="googlesearch">

color类型:校验是否为颜色格式的数据

Select your favorite color:<input type="color" name="favcolor">

tel类型:校验数据是否为电话类型

Telephone:<input type="tel" name="usrtel">

2. 新的表单元素

datalist(数据列表):datalist中option的值为input提供输入列表,用户可以从中选取,也可以输入。需要注意的是input的list名要和datalist中的id值相同。使用方法如下👇

<datalist id="list">
    <option>广东</option>
    <option>贵州</option>
</datalist>
<input type="text" list="list">

progress(进度条):显示进度条,值为0~1之间(比较常用,默认为蓝色)

<progress value="0.5"></progress> //value取值在(0~1)

meter(刻度尺):用法格式如:<meter min="可取最小值" max="可取最大值" low="合理下限" high="合理的上限值" optimum="最佳值" value="当前实际值"></meter> 实际用法入下👇

//meter用户标示一个值所处范围,不可接受(红色) 可以接受(黄色) 非常优秀(绿色)
<meter min="0" max="10" low="1" high="9" optimum="5" value="3"></meter>

output(语义标签,等同于span)

商品单价:¥3.5 <br>
商品数量: <input type="number" value="1"> <br>
小计: <output>¥3.5</output>

3. 新增的表单属性

 5. 多媒体标签

音频标签(插入音频)

其中control属性供添加播放、暂停、和音量控件

<audio controls>
    <source src="horse.ogg" type="audio/ogg">
    <source src="horse.mp3" type="audio/mpeg">
    您的浏览器不支持 Audio 标签。
</audio>

视频标签

其中control属性供添加播放、暂停和音量控件来控制视频。也可以使用dom操作来控制视频的播放暂停,如 play() 和 pause() 方法。

<video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
    您的浏览器不支持 Video 标签。
</video>

6. Canvas绘图

需要注意的是canvas只是图形容器,必须使用脚本来绘制图形。

步骤分为如下👇

1. 创建一个画布,一个画布在网页中是一个矩形框,通过 <canvas> 元素来绘制。默认情况下 元素没有边框和内容。需要注意的是宽高最好在标签内设置,若是在css设置宽高,会出现形状畸变的情况(如圆形会变成椭圆)

<canvas id="myCanvas" width="200" height="100"></canvas>

2. 使用Javascript来绘制图像,canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成,其中fillRect(x,y,width,height) 方法定义了矩形当前的填充方式。意思是:在画布上绘制 150x75 的矩形,从左上角开始 (0,0)。

<script>
  var c=document.getElementById("myCanvas");
  var ctx=c.getContext("2d");
  ctx.fillStyle="#FF0000";
  ctx.fillRect(0,0,150,75);
</script>

定义开始坐标(0,0), 和结束坐标 (200,100)。然后使用 stroke() 方法来绘制线条。moveTo(x,y) 定义线条开始坐标,lineTo(x,y) 定义线条结束坐标

<script>
    var c=document.getElementById("myCanvas");
    var ctx=c.getContext("2d");
    ctx.moveTo(0,0);
    ctx.lineTo(200,100);
    ctx.stroke();
</script>

7. SVG绘图

SVG是指可伸缩的矢量图形,如jpg图像在放大后会出现像素失真的情况,因此用SVG绘图就可以保证图像的像素。SVG绘图与canvas的区别在于:

1. SVG 是一种使用 XML 描述 2D 图形的语言。

2. Canvas 通过 JavaScript 来绘制 2D 图形。而SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。

3. 在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。但Canvas 是逐像素进行渲染的。在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。

(用的少,所以没举例,在这里就介绍个大概)

8. 地理位置

HTML5新增的地理位置特性,需通过JavaScript进行数据获取👇

var x=document.getElementById("demo");
function getLocation()
{
    if (navigator.geolocation)
    {
        navigator.geolocation.getCurrentPosition(showPosition);
    }
    else
    {
        x.innerHTML="该浏览器不支持获取地理位置。";
    }
}
 
function showPosition(position)
{
    x.innerHTML="纬度: " + position.coords.latitude + 
    "<br>经度: " + position.coords.longitude;    
}

由于HTML5新增特性内容略多,并且剩下的拖放API,web worker和web storage需要较长篇幅讲解,因此将HTML5的内容分成两部分讲解。这篇文章就先介绍这么多,剩下的内容就留到下篇文章介绍吧!学到的知识还是要多练习才能掌握,如果文章有帮助的话友友们可以关注一下😀

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《PHP和MySQL Web开发(原书第5版)》是一本关于学习PHP和MySQL进行Web开发的书籍。该书主要介绍了PHP语言的基础知识和MySQL数据库的使用方法,以及如何将它们结合起来进行Web开发。 PHP是一种服务器端脚本语言,它可以嵌入到HTML,并与数据库交互,生成动态的网页内容。MySQL是一种关系型数据库管理系统,可以用来存储和管理网站的数据。 这本书的第五版相较于前几版进行了全面的更新和提升。它从入门到精通地指导读者学习PHP和MySQL的使用方法,通过实际的案例和项目示例,帮助读者掌握Web开发的基本技术和方法。 具体而言,该书包括了以下几个方面的内容: 1. PHP语言基础:介绍了PHP的语法、变量、函数、数组、流程控制等基本知识。 2. MySQL数据库基础:介绍了数据库的基本概念、SQL语句的使用方法以及MySQL的安装和配置。 3. PHP和MySQL的连接:讲解了如何使用PHP连接MySQL数据库,并进行数据的增删改查操作。 4. 表单处理和数据验证:详细介绍了如何使用PHP处理HTML表单的数据,以及对输入数据进行验证和过滤。 5. 用户认证和会话管理:讲解了如何使用PHP实现用户的登录认证和会话管理,以及如何保护网站的安全。 6. 图像处理和文件上传:介绍了使用PHP处理图像和上传文件的方法,为Web开发增加了更多的功能性。 7. 网站构建和布局:指导读者如何构建一个完整的网站,包括页面布局、导航、数据库设计等方面的内容。 8. Ajax和Web服务:讲解了如何使用Ajax和Web服务实现网页的异步求和动态渲染。 总之,《PHP和MySQL Web开发(原书第5版)》是一本适合初学者入门和进阶学习的经典著作,对于想要学习PHP和MySQL进行Web开发的人来说,是一本不可多得的实用指南。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值