整合营销服务商

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

免费咨询热线:

前端笔记-HTML5新特性

前端笔记-HTML5新特性

OCTYPE声明:

<!Doctype html>

字符编码声明:

<meta charset="UTF-8">   //不写的话HTML5默认也是UTF-8

新增的语义/结构化标签 Semantic

<video>、<audio>、<header>、<nav>、<main>、<section>、<article>、<footer>、<aside>、<details>、<dialog>、<figcaption>、<figure> img和figcaption组合放在figure里、<mark>、<time>、<summary>

<figure>
//img和figcaption可以组合放在figure里
  <img src="pic_mountain.jpg" alt="The Pulpit Rock" width="304" height="228">
  <figcaption>Fig1. - The Pulpit Rock, Norway.</figcaption>
</figure>

新增的input类型和属性

  • 类型type:

color、date、datetime、datetime-local、month、search、file、email、number、tel、url、week、range

  • 属性attribute:

autocomplete、autofocus、form、formaction、formenctype、formmethod、formnovalidate、ormtarget、height and width、list、min and max、pattern(regexp、placeholder、required、step、mutiple

新的图形标签

SVG

  • 代表可缩放矢量图形
  • SVG用于为Web定义图形
  • SVG是W3C的建议

SVG与Canvas区别

  • SVG适用于描述XML中的2D图形的语言
  • Canvas随时随地绘制2D图形(使用JavaScript)
  • SVG是基于XML的,这意味着每个元素在SVG DOM中都可用。你可以为每个元素添加JavaScript事件处理程序
  • 在SVG中,每个绘制的形状都会被记忆为一个对象。如果SVG对象的书香发生变化,浏览器可以自动重新渲染形状。
  • Canvas是一像素一像素地渲染。在画布中,一旦图形绘制好了,就会被浏览器遗忘。如果你想改变某一个的位置,整个场景都需要重新绘制,包括可能已经被图形覆盖的任何对象。

新的HTML5的API

  • HTML Geolocation 地理位置
  • HTML Drag & Drop拖放
  • HTML Local Storage 本地存储
  • HTML Application Cache 应用程序缓存
  • HTML Web Workers web工作者
  • HTNL SSE

其他

  • HTML5通过meta标签达到监听并适配设备屏幕的布局
<meta name="viewport" content="width=device-width, initial-scale=1.0">
  • HTML5元素命名 & class等属性名允许混合使用大写和小写字母,但建议用小写
  • HTML5删除/废弃不能用的元素

<acronym> 首字母缩写--<abbr>、<applet>--<object>、<basefont> 页面上默认字体颜色和字号,<big> 更大的文本,<center> 文本水平居中,<dir> 目录列表,<font> 字体外观,尺寸,颜色--css样式、<frame> 定义子窗口、<noframes> 向浏览器显示无法处理框架的提示文本,位于frameset元素中、<strike> 文本添加删除线、<tt> 定义打字机文本

如果非常精通HTML,看到这标题,也许会想到acronym标记吧,acronym在HTML5中已经被弃用了,取代之的就是这个abbr标记。

再HTML5中新增的abbr是一个非常有用的标记,但很明显没有被web文档撰写者重视,特别是没有被科技文章编写者重视。接下来为大家演示下:

HTML:

CSS:

效果:

上图可看到,缩略词下面是有小点的,而且,将你的鼠标移动到缩略词上,会看到提示,提示信息就是abbr标记上的title属性里属性里填写的缩略词解释。

作为一名前端程序员,我们去注意这些小细节,当用户感觉到方便时,我们开发的东西才能真正体现出它的价值。

切图 qietu(.com)

在做前端,如果说自己不会h5,你很有可能被你的客户嘲笑,说什么最新技术都不会!h5其实没什么,只不过是html技术的进一步发展,主要是增加了一些新的元素而已。

HTML5 <!DOCTYPE>

<!doctype> 声明必须位于 HTML5 文档中的第一行,使用非常简单,写法:<!DOCTYPE html>

新特性

HTML5 中的一些有趣的新特性:

用于绘画的 canvas 元素

用于媒介回放的 video 和 audio 元素

对本地离线存储的更好的支持

新的特殊内容元素,比如 article、footer、header、nav、section

新的表单控件,比如 calendar、date、time、email、url、search

HTML5 添加了很多语义元素如下所示:

标签描述
<article>定义页面独立的内容区域。
<aside>定义页面的侧边栏内容。
<bdi>允许您设置一段文本,使其脱离其父元素的文本方向设置。
<command>定义命令按钮,比如单选按钮、复选框或按钮
<details>用于描述文档或文档某个部分的细节
<dialog>定义对话框,比如提示框
<summary>标签包含 details 元素的标题
<figure>规定独立的流内容(图像、图表、照片、代码等等)。
<figcaption>定义 <figure> 元素的标题
<footer>定义 section 或 document 的页脚。
<header>定义了文档的头部区域
<mark>定义带有记号的文本。
<meter>定义度量衡。仅用于已知最大和最小值的度量。
<nav>定义导航链接的部分。
<progress>定义任何类型的任务的进度。
<ruby>定义 ruby 注释(中文注音或字符)。
<rt>定义字符(中文注音或字符)的解释或发音。
<rp>在 ruby 注释中使用,定义不支持 ruby 元素的浏览器所显示的内容。
<section>定义文档中的节(section、区段)。
<time>定义日期或时间。
<wbr>规定在文本中的何处适合添加换行符。

HTML5 表单

新表单元素, 新属性,新输入类型,自动验证。

已移除元素

以下的 HTML 4.01 元素在HTML5中已经被删除:

<acronym> 标记一个首字母缩写,h5用abbr代替

<applet> 用object代替

<basefont>规定页面上的默认字体颜色和字号:

<big>呈现大号字体效果。

<center> 这个...这么常用为什么去掉??

<dir> 签定义目录列表。类似于ul

<font> //这个也是比较常用的,但是取消了

<frame> 标签定义 frameset 中的一个特定的窗口(框架)

<frameset>定义一个框架集

<noframes> 元素可为那些不支持框架的浏览器显示文本。noframes 元素位于 frameset 元素内部。

<strike>标签可定义加删除线文本定义。

HTML5 浏览器支持

最新版本的 Safari、Chrome、Firefox 以及 Opera 支持某些 HTML5 特性。Internet Explorer 9 将支持某些 HTML5 特性。

IE9 以下版本浏览器兼容HTML5的方法,使用的静态资源的html5shiv包:(菜鸟教程)

<!--[if lt IE9]> <script src="http://cdn.static.runoob.com/libs/html5shiv/3.7/html5shiv.min.js"></script> <![endif]-->

载入后,初始化新标签的CSS:

/*html5*/article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}

HTML 5 视频

写法:<video src="movie.ogg" controls="controls" width="320" height="240">文字</video>

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

<video> 与 </video> 之间插入的内容是供不支持 video 元素的浏览器显示的:

注意:要确保适用于 Safari 浏览器,视频文件必须是 MPEG4 类型。所以video 元素允许多个 source 元素

所以写成:

<video width="320" height="240" controls="controls">

<source src="movie.ogg" type="video/ogg">

<source src="movie.mp4" type="video/mp4">

Your browser does not support the video tag.

</video>

<video> 标签的属性

autoplay:值为:autoplay,如果出现该属性,则视频在就绪后马上播放。

controls:值为:controls如果出现该属性,则向用户显示控件,比如播放按钮。height:pixels设置视频播放器的高度。

loop:值为:loop,如果出现该属性,则当媒介文件完成播放后再次开始播放。

preload:值为:preload,如果出现该属性,则视频在页面加载时进行加载,并预备播放。如果使用 "autoplay",则忽略该属性。

src:值为:url,要播放的视频的 URL。

width:值为:pixels,设置视频播放器的宽度。

同时还可以支持dom事件支持:play(),pause(),load(),canPlayType();

HTML 5 音频

写法:<audio src="song.ogg" controls="controls">Your browser does not support the audio tag.</audio>

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

<audio> 与 </audio> 之间插入的内容是供不支持 audio 元素的浏览器显示

当前,audio 元素支持三种音频格式:mp3,mav和ogg,Safari 浏览器,音频文件必须是 MP3 或 Wav 类型。多个 source 元素支持。

<audio> 标签的属性

属性描述
autoplayautoplay如果出现该属性,则音频在就绪后马上播放。
controlscontrols如果出现该属性,则向用户显示控件,比如播放按钮。
looploop如果出现该属性,则每当音频结束时重新开始播放。
preloadpreload如果出现该属性,则音频在页面加载时进行加载,并预备播放。如果使用 "autoplay",则忽略该属性。
srcurl要播放的音频的 URL。

HTML 5 拖放

拖放(Drag 和 drop)是 HTML5 标准的组成部分。

draggable="true" 设置元素为可拖放 <img draggable="true" />

ondragstart 和 setData()规定当元素被拖动时,会发生什么

ondragoverondragover 事件规定在何处放置被拖动的数据。

Ondrop:当放置被拖数据时,会发生 drop 事件。

(说实话真心不好理解,看一下w3c给的案例吧:)

<script type="text/javascript">

function allowDrop(ev)

{ev.preventDefault();}

function drag(ev)

{ev.dataTransfer.setData("Text",ev.target.id);//方法设置被拖数据的数据类型和值:

}

function drop(ev)

{

ev.preventDefault();//阻止对元素的默认处理方式,默认不接受拖拽元素的

var data=ev.dataTransfer.getData("Text");//获得被拖的数据

ev.target.appendChild(document.getElementById(data));//放置进去

}

</script>

<div id="div1" ondrop="drop(event)"ondragover="allowDrop(event)"></div>

<img id="drag1" src="img_logo.gif" draggable="true"ondragstart="drag(event)" width="336" height="69" />

这个拖拽看起来比较费劲,一般我们也用不到,大家可以先收藏起来,如果需要用到的时候,再返回来直接套用案例!

未完待续.....

看不懂没关系,多用几次,平时写网页的时候,可以慢慢的增加使用h5标签,因为除了ie8一下,大部分浏览器还是可以支持的!本教程是结合了w3c,菜鸟教程,慕课网的内容总结的,如果不妥多多指教!