HTML5新增标签 表单 属性 事件

HTML5简介

  • HTML5是HTML最新的修订版本,2014年10月由W3C(万维网联盟)完成标准制定。
  • HTML5是W3C与WHATWG(指Web Hypertext Application Technology Working Group)合作的结果。WHATWG致力于web表单和应用程序,而W3C专注于XHTML2.0。在2006年,双方决定进行合作,来创建一个新版本的HTML,也就是现在的HTML5。
  • HTML5 将成为 HTML、XHTML 以及 HTML DOM 的新标准。
  • HTML 4.01的上一个版本诞生于 1999 年。自从那以后,Web 世界已经经历了巨变。
  • 现在HTML5仍处于完善之中,不过,大部分现代浏览器已经具备了某些H5支持。
  • HTML5真正广泛使用是从2016年开始的。
  • HTML5 中的一些新特性:
    • 用于绘画的 canvas 元素;
    • 用于媒介回放的 video 和 audio 元素;
    • 对本地离线存储的更好的支持;
    • 新的特殊内容元素,比如 article、footer、header、nav、section;
    • 新的表单控件,比如 calendar、date、time、email、url、search;

HTML5新增标签

article

代表文档、页面或应用程序中独立的、完整的、可以独自被外部引用的内容。

<article>
  <h1>Internet Explorer 9</h1>
  <p> Windows Internet Explorer 9(缩写为 IE9 )在2011年3月14日21:00 发布。</p>
</article>

section

  • 一个section元素通常由内容及其标题组成。用于对网站或应用程序中页面上的内容进行分块。
  • section元素并非一个普通的容器元素;当一个内容需要被直接定义样式或通过脚本定义行为时,推荐使用div而非section元素。section元素中的内容可以单独存储到数据库中或输出到word文档中。
  • section元素的作用是对页面上的内容进行分块,或者说对文章进行分段,请不要与有着自己的完整的、独立的内容的article元素混淆。
  • section 使用禁忌:
    • 不要将section元素用作设置样式的页面容器,那是div元素的工作。
    • 如果article元素、aside元素或nav元素更符合使用条件,不要使用section元素。
    • 不要为没有标题的内容区块使用section元素。
<section>
<h1>WWF</h1>
<p>The World Wide Fund for Nature (WWF) is....</p>
</section>

aside

通常显示成侧边栏(sidebar)或一些插入补充内容。通常用来在侧边栏显示一些定义,比如目录、索引、术语表等;也可以用来显示相关的广告宣传,作者的介绍,Web应用,相关链接,当前页内容简介等。

<p>My family and I visited The Epcot center this summer.</p>
<aside>
  <h4>Epcot Center</h4>
  <p>The Epcot Center is a theme park in Disney World, Florida.</p>
</aside>

main

标签规定文档的主要内容。元素中的内容对于文档来说应当是唯一的。它不应包含在文档中重复出现的内容,比如侧栏、导航栏、版权信息、站点标志或搜索表单。

注意:在一个文档中,main元素是唯一的,所以不能出现一个以上的 main>元素。main元素不能是article、aside、footer、header 或 nav的后代。

<main>
  <h1>Web 浏览器</h1>
  <p>Google Chrome、Firefox 以及 Internet Explorer 是目前最流行的浏览器。</p> 
  <article>
    <h1>Google Chrome 浏览器</h1>
    <p>Google Chrome 浏览器是由 Google 开发的一款免费的开源 web 浏览器,于 2008 年发布。</p>
  </article> 
  <article>
    <h1>Internet Explorer 浏览器</h1>
    <p>Internet Explorer 浏览器由微软开发的一款免费的 web 浏览器,发布于 1995 年。</p>
  </article>
</main>

header

定义文档或者文档的一部分区域的页眉。header元素应该作为介绍内容或者导航链接栏的容器。在一个文档中,可以定义多个 header元素。

注意:header标签不能被放在 footer、address或者另一个 header元素内部。

<!--定义文章的页眉-->
<article>
    <header>
        <h1>Internet Explorer 9</h1>
        <p><time pubdate datetime="2011-03-15"></time></p>
    </header>
    <p> Windows Internet Explorer 9(缩写为 IE9 )是在2011年3月14日21:00发布的</p>
</article>

footer

定义文档或者文档的一部分区域的页脚。footer元素应该包含它所包含的元素的信息。页脚通常包含文档创作者的姓名、文档的版权信息、使用条款的链接、联系信息等等。在一个文档中,您可以定义多个 footer元素。

<footer>
  <p>Posted by: Hege Refsnes</p>
  <p><time pubdate datetime="2012-03-01"></time></p>
</footer>

nav

定义导航链接的部分。并不是所有的 HTML 文档都要使用到nav元素。nav元素只是作为标注一个导航链接的区域。

<nav>
  <a href="/html/">HTML</a> |
  <a href="/css/">CSS</a> |
  <a href="/js/">JavaScript</a> |
  <a href="/jquery/">jQuery</a>
</nav>

command

表示用户能够调用的命令,可以定义命令按钮,比如单选按钮、复选框或按钮。
当使用 menu元素时,command 元素将作为菜单或者工具栏的一部分显示出来。但是,用 command 规定键盘快捷键时,command元素能被放置在页面的任何位置,但元素不可见。

注意:目前,主流浏览器都不支持command标签。只有 IE 9 支持command标签。

<menu>
<command type="command" label="Save" onclick="save()">Save</command>
</menu>

details & summary

details标签用于描述文档或文档某个部分的细节,与summary标签配合使用可以为 details 定义标题。标题是可见的,用户点击标题时,会显示出 details。
details标签拥有 open 属性,details元素默认是隐藏的,设置 open 属性后,可以定义details元素默认可见,与checkbox定义checked属性是一个道理。

注意:目前,只有 Chrome 和 Safari 6 支持 details 标签。

<details>
<summary>Copyright 1999-2011.</summary>
<p> - by Refsnes Data. All Rights Reserved.</p>
<p>All content and graphics on this web site are the property of the company Refsnes Data.</p>
</details>
<style>
ul {margin: 0;padding: 0;list-style: none;
    max-height: 0;transition: .3s all;overflow: hidden;}
[open] + ul {max-height: 60px;}
</style>
<div>
   <details open>
        <summary>商品管理</summary>
    </details>
    <ul><li>商品列表</li>
        <li>添加商品</li></ul>
</div>
<div>
    <details open>
        <summary>品牌管理</summary>
    </details>
    <ul><li>品牌列表</li>
        <li>添加品牌</li></ul>
</div>

hgroup

hgroup元素是将标题和他的子标题进行分组的元素。hgroup元素一般会把h1-h6的元素进行分组,比如在一个内容区块的标题和他的子标题算是一组。通常情况下,文章只有一个主标题时,是不需要hgroup元素的。

<hgroup>
<h1>Welcome to my WWF</h1>
<h2>For a living planet</h2>
</hgroup>
<p>The rest of the content...</p>

figure

figure标签规定独立的流内容(图像、图表、照片、代码等等)。figure元素的内容应该与主内容相关,同时元素的位置相对于主内容是独立的。如果被删除,则不应对文档流产生影响。

<figure>
  <img src="img_pulpit.jpg" alt="The Pulpit Rock" width="304" height="228">
</figure>

figcaption

figcaption标签为figure元素定义标题。figcaption元素应该被置于figure元素的第一个或最后一个子元素的位置。

<figure>
  <img src="img_pulpit.jpg" alt="The Pulpit Rock" width="304" height="228">
  <figcaption>Fig1. - A view of the pulpit rock in Norway.</figcaption>
</figure>

mark

mark标签定义带有记号的文本。在需要突出显示文本时使用。

<p>Do not forget to buy <mark>milk</mark> today.</p>

time

定义公历的时间(24 小时制)或日期,时间和时区偏移是可选的。
该元素能够以机器可读的方式对日期和时间进行编码,这样,举例说,用户代理能够把生日提醒或排定的事件添加到用户日程表中,搜索引擎也能够生成更智能的搜索结果。

<p>我们在每天早上 <time>9:00</time> 开始营业。</p>
<p>我在 <time datetime="2016-02-14">情人节</time> 有个约会。</p>

progress

定义运行中的任务进度(进程)。

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

meter

meter标签定义度量衡。仅用于已知最大和最小值的度量。比如:磁盘使用情况,查询结果的相关性等。

<meter value="2" min="0" max="10">2 out of 10</meter><br>
<meter value="0.6">60%</meter>

embed

embed可以用来插入各种多媒体,格式可以是 Midi、Wav、AIFF、AU、MP3等等,Netscape及新版的IE都支持。url为音频或视频文件及其路径,可以是相对路径或绝对路径。

<embed src="your.wav" autostart=true>

embed的属性列表:

属性 含义
autostart true、false 该属性规定音频或视频文件是否在下载完之后就自动播放
loop 正整数、true、false 该属性规定音频或视频文件是否循环及循环次数
hidden ture、no 该属性规定控制面板是否显示,默认值为no
starttime mm:ss(分:秒) 该属性规定音频或视频文件开始播放的时间。未定义则从文件开头播放
volume 0-100之间的整数 该属性规定音频或视频文件的音量大小。未定义则使用系统本身的设定
height 正整数或百分数,单位为像素 该属性规定控制面板的高度
width 正整数或百分数,单位为像素 该属性规定控制面板的宽度
units pixels、en 该属性指定高和宽的单位为pixels或en
controls console、smallconsole、playbutton、pausebutton、stopbutton、volumelever 该属性规定控制面板的外观。默认值是console,smallconsole(较小的面板)、playbutton(只显示播放按钮)、pausebutton(只显示暂停按钮)、stopbutton(只显示停止按钮)、volumelever(只显示音量调节按钮)
name # 给对象取名,以便其他对象利用
title # 规定音频或视频文件的说明文字
palette color color
align center、left、right、top、bottom、baseline、texttop、middle、absmiddle、absbottom 该属性规定控制面板和当前行中的对象的对齐方式,center(控制面板居中)、left(控制面板居左)、right(控制面板居右)、top(控制面板的顶部与当前行中的最高对象的顶部对齐)、bottom(控制面板的底部与当前行中的对象的基线对齐)、baseline(控制面板的底部与文本的基线对齐)、texttop(控制面板的顶部与当前行中的最高的文字顶部对齐)、middle(控制面板的中间与当前行的基线对齐)、absmiddle(控制面板的中间与当前文本或对象的中间对齐)、absbottom(控制面板的底部与文字的底部对齐

bdi

bdi 指的是 bidi 隔离(Bi-directional Isolation)。bdi 标签允许您设置一段文本,使其脱离其父元素的文本方向设置。在发布用户评论或其他您无法完全控制的内容时,该标签很有用。

注意: 目前只有 Firefox 和 Chrome 浏览器支持 bdi 标签。

<div>Username <bdi dir="ltr">Bill</bdi>:80 points</div>
<div>Username <bdi dir="rtl">Steve</bdi>: 78 points</div>

ruby & rp & rb & rt

ruby 标签定义 ruby 注释(中文注音或字符)。在东亚使用,显示的是东亚字符的发音。
将 ruby 标签与 rt 和 rp 标签一起使用:
ruby 元素由一个或多个需要解释/发音的字符和一个提供该信息的 rt 元素组成,还包括可选的 rp 元素,定义当浏览器不支持 “ruby” 元素时显示的内容。

<ruby><rp>(</rp><rt>Han</rt><rp>)</rp><rp>(</rp><rt>zi</rt><rp>)</rp>
</ruby>

HTML5表单

input

input的新增属性:

属性 含义
autocomplete 属性规定 form 或 input 域应该拥有自动完成功能
autofocus 属性规定 form 或 input 域在页面加载时,自动获得焦点
required 属性规定必须在提交之前填写输入域(不能为空)
placeholder 属性提供一种提示(hint),描述输入域所期待的值
pattern 属性规定用正则表达式验证 input 域的值
multiple 属性规定输入域中可选择多个值
novalidate 属性规定在提交表单时不应该验证 form 或 input 域
height、width 属性规定用于 image 类型的 input 标签的图像高度和宽度
list 属性规定输入域的 datalist。datalist 是输入域的选项列表
min、max、step 属性用于为包含数字或日期的 input 类型规定限定(约束)
form 属性规定输入域所属的一个或多个表单
formaction 重写表单的 action 属性
formenctype 重写表单的 enctype 属性
formmethod 重写表单的 method 属性
formnovalidate 重写表单的 novalidate 属性
formtarget 重写表单的 target 属性
<form action="demo_form.php" method="get" id="user_form">
	First name:<input type="text" name="fname" />
	<input type="text" name="country_code"
	pattern="[A-z]{3}" title="Three letter country code" />
	<input type="submit" />
</form>
Last name: <input type="text" name="lname" form="user_form" />

datalist

datalist 标签规定了input 元素可能的选项列表。被用来在为input元素提供"自动完成"的特性。用户能看到一个下拉列表,里边的选项是预先定义好的,将作为用户的输入数据。使用 input 元素的 list 属性来绑定 datalist 元素。

<input list="browsers">
<datalist id="browsers">
	<option value="Internet Explorer">
	<option value="Firefox">
	<option value="Chrome">
	<option value="Opera">
	<option value="Safari">
</datalist>

output

output 标签作为计算结果输出显示(比如执行脚本的输出)。

<form oninput="x.value=parseInt(a.value)+parseInt(b.value)">0
	  <input type="range" id="a" value="50">100
	  +<input type="number" id="b" value="50">
	  =<output name="x" for="a b"></output>
</form> 

HTML5全局属性

属性 含义
contenteditable 规定元素内容是否可编辑
contextmenu 规定元素的上下文菜单。上下文菜单在用户点击元素时显示
data-* 用于存储页面或应用程序的私有定制数据
draggable 规定元素是否可拖动
dropzone 规定在拖动被拖动数据时是否进行复制、移动或链接
hidden 隐藏元素
spellcheck 规定是否对元素进行拼写和语法检查
translate 规定是否应该翻译元素内容

HTML5事件

window事件

属性 描述
onafterprint script 文档打印之后运行的脚本。
onbeforeprint script 文档打印之前运行的脚本。
onbeforeunload script 文档卸载之前运行的脚本。
onerror script 在错误发生时运行的脚本。
onhashchange script 当文档已改变时运行的脚本。
onmessage script 在消息被触发时运行的脚本。
onoffline script 当文档离线时运行的脚本。判断是否有网络
ononline script 当文档上线时运行的脚本。
onpagehide script 当窗口隐藏时运行的脚本。
onpageshow script 当窗口成为可见时运行的脚本。
onpopstate script 当窗口历史记录改变时运行的脚本。
onredo script 当文档执行撤销(redo)时运行的脚本。
onstorage script 在 Web Storage 区域更新后运行的脚本。
onundo script 在文档执行 undo 时运行的脚本。

form事件

属性 描述
oncontextmenu script 当上下文菜单被触发时运行的脚本。
onformchange script 在表单改变时运行的脚本。
onforminput script 当表单获得用户输入时运行的脚本。
oninvalid script 当元素无效时运行的脚本。

mouse事件

属性 描述
ondrag script 元素被拖动时运行的脚本。
ondragend script 在拖动操作末端运行的脚本。
ondragenter script 当元素元素已被拖动到有效拖放区域时运行的脚本。
ondragleave script 当元素离开有效拖放目标时运行的脚本。
ondragover script 当元素在有效拖放目标上正在被拖动时运行的脚本。
ondragstart script 在拖动操作开端运行的脚本。
ondrop script 当被拖元素正在被拖放时运行的脚本。
onmousewheel script 当鼠标滚轮正在被滚动时运行的脚本。
onscroll script 当元素滚动条被滚动时运行的脚本。

touch事件

属性 描述
touchstart 当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发
touchmove 当手指在屏幕上滑动的时候连续地触发。在这个事件发生期间,调用preventDefault()事件可以阻止滚动
touchend 当手指从屏幕上离开的时候触发
touchcancel 当系统停止跟踪触摸的时候触发。关于这个事件的确切出发时间,文档中并没有具体说明,咱们只能去猜测了。

打印出touch事件,可以看到有以下属性:

  • touches,表示当前跟踪的触摸操作的touch对象的数组,下面的TouchList 是多点操作,里面有坐标,可以计算坐标差值。
  • timeStamp,表示当前页面到触发事件的毫秒数,可以计算时间差值。

以上两个值可以用来判断用户的缩放行为。
在这里插入图片描述

发布了130 篇原创文章 · 获赞 46 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/Charissa2017/article/details/104611320