找工作面试的时候有公司技术人员会问html5新特性,那这里就再复习一遍
1、新的文档类型
<!DOCTYPE html>
2、脚本和链接无需type
<link href="css/bootstrap.css" rel="stylesheet"> <script src="js/Angular.js"></script>
3、语义化的Header 和Footer
这里通俗说下什么叫做语义化,就是:明白每个标签的用途即直观的人是标签和属性的用途和作用。
好处:
- 去掉样式能让页面结构呈现清晰
- 屏幕阅读器会按标记“读”你的网页
- 有益于SEO
- 便于团队开发和维护
Html5新增元素表
标签 | 含义 | 与html4对照 |
<article> | 标签定义外部的内容。比如来自一个外部的新闻提供者的一篇新的文章,或者来自 blog 的文本,或者是来自论坛的文本。亦或是来自其他外部源内容 | HTML5:<article></article> HTML4:<div></div> |
<section> | 标签定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。 | HTML5: <section></section> HTML4: <div></div> |
<aside> | 标签定义 article 以外的内容。aside 的内容应该与 article 的内容相关。 | HTML5:<aside>Aside 的内容是独立的内容,但应与文档内容相关。</aside> HTML4:<div>Aside 的内容是独立的内容,但应与文档内容相关。</div> |
<header> | 标签定义 section 或 document 的页眉。 | HTML5: <header></header> HTML4: <div></div> |
<footer> | 标签定义 section 或 document 的页脚。典型地,它会包含创作者的姓名、文档的创作日期以及/或者联系信息。 | HTML5: <footer></footer> HTML4: <div></div> |
<hgroup> | 标签用于对网页或区段(section)的标题进行组合。 | HTML5: <hgroup></hgroup> HTML4: <div></div> |
<nav> | 标签定义导航链接的部分 | HTML5: <nav></nav> HTML4:<ul></ul> |
<canvas> | 标签定义图形,比如图表和其他图像。这个 HTML 元素是为了客户端矢量图形而设计的。它自己没有行为,但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把想绘制的东西都绘制到一块画布上。 | HTML5:<canvas id="myCanvas" width="200" height="200"></canvas> HTML4:<object data="inc/hdr.svg" type="image/svg+xml" width="200" height="200"></object> |
<video> | 标签定义视频,比如电影片段或其他视频流。 | HTML5: <video src="movie.ogg" controls="controls">您的浏览器不支持 video 标签。</video> HTML4:<object type="video/ogg" data="movie.ogv"><param name="src" value="movie.ogv"></object> |
<audio> | 标签定义声音,比如音乐或其他音频流。 | HTML5:<audio src="someaudio.wav">您的浏览器不支持 audio 标签。</audio> HTML4:<object type="application/ogg" data="someaudio.wav"><param name="src" value="someaudio.wav"></object> |
<embed> | 标签定义嵌入的内容,比如插件。 | HTML5: <embed src="horse.wav" /> HTML4: <object data="flash.swf" type="application/x-shockwave-flash"></object> |
<source> | 标签为媒介元素(比如 <video> 和 <audio>)定义媒介资源。 | HTML5: <source> HTML4: <param> |
<datalist> | 标签定义可选数据的列表。与 input 元素配合使用,就可以制作出输入值的下拉列表。 | HTML5: <datalist></datalist> HTML4: none |
<details> | 标签定义元素的细节,用户可进行查看,或通过点击进行隐藏。与 <legend> 一起使用,来制作 detail 的标题。该标题对用户是可见的,当在其上点击时可打开或关闭 detail。 | HTML5: <details></details> HTML4: <dl ></dl> |
<summary> | 标签包含 details 元素的标题,”details” 元素用于描述有关文档或文档片段的详细信息。”summary” 元素应该是 “details” 元素的第一个子元素。 | HTML5: <details><summary>HTML 5</summary>This document teaches you everything you have to learn about HTML 5.</details> HTML4: none |
<figure> | 标签用于对元素进行组合。使用 <figcaption> 元素为元素组添加标题。 | HTML5: <figure><figcaption>PRC</figcaption><p>The People‘s Republic of China was born in 1949...</p></figure> HTML4: <dl><H3>PRC</H3><p>The People‘s Republic of China was born in 1949...</p></dl> |
<figcaption> | 标签定义 figure 元素的标题。”figcaption” 元素应该被置于 “figure” 元素的第一个或最后一个子元素的位置。 | HTML5: <figure><figcaption>PRC</figcaption></figure> HTML4: none |
<mark> | 主要用来在视觉上向用户呈现那些需要突出的文字。<mark>标签的一个比较典型的应用就是在搜索结果中向用户高亮显示搜索关键词。 | HTML5: <mark></mark> HTML4: <span></span |
<meter> | 标签定义度量衡。仅用于已知最大和最小值的度量。必须定义度量的范围,既可以在元素的文本中,也可以在 min/max 属性中定义。 | HTML5: <meter></meter> HTML4: none |
<output> | 标签定义不同类型的输出,比如脚本的输出。 | HTML5: <output></output> HTML4: <span></span> |
<progress> | 标签运行中的进程。可以使用 <progress> 标签来显示 JavaScript 中耗费时间的函数的进程。 | HTML5: <progress></progress> HTML4: none |
<time> | 标签定义日期或时间,或者两者。 | HTML5: <time></time> HTML4: <span></span> |
<keygen> | 标签用于对网页或区段(section)的标题进行组合 | HTML5: <keygen> HTML4: none |
<command> | 标签定义命令按钮,比如单选按钮、复选框或按钮。 | HTML5: <command onclick=cut()" label="cut"> HTML4: none |
其中:
a、标记元素 <mark>被当作高亮标签,被这个标签修饰的字符串应当和用户当前的行动有关,比如,当我在某博客搜素“hello word”时,可以利用javaScript将出现的词组用<mark>修饰一下。
b、当图片和文字存在联系时,可以用<figure>、<figcaption>结合起来,可以语义化地将注释和相应的图片联系起来。
1 <figure> 2 <img src="/image" alt="About image" /> 3 <figcaption> 4 <p> 5 This is an image of something interesting. 6 </p> 7 </figcaption> 8 </figure>
c、重新定义<small>,用来定义小字
4、表单文本框相关的属性
a、input占位符 placeholder,用来提前设置一些信息,当用户开始输入时,文本框中的文字消失。
b、input必要属性requried,或者required="required",指定输入是否必需。
c、autofocus属性,如果一个输入应该是聚焦,默认情况下,可以利用自动叫属性
d、pattern引用正则表达式
<input type="text" name="someInput" placeholder="4 <> 10" pattern="[A-Za-z]{4,10}" required autofocus>
5、音频视频相关标签
a、<audio>音频,当使用<audio>元素时请记得包含两种音频格式。FireFox想要.ogg格式的文件,而Webkit浏览器则需要.mp3格式的。和往常一样,IE是不支持的,且Opera 10及以下版本只支持.wav格式。另外可以在开始标签和结束标签之间放置文本内容,这样老的浏览器就可以显示出不支持该标签的信息。
<audio autoplay="autoplay" controls="controls"> <source src="file.ogg" /> <source src="file.mp3" /> <a href="file.mp3">Download this file. </a> 你的浏览器不支持audio标签 </audio>
b、<video>视频。然而,和<audio>类似,HTML5中并没有指定视频解码器,它留给了浏览器来决定。虽然Safari和Internet Explorer9可以支持H.264格式的视频,Firefox和Opera是坚持开源Theora 和Vorbis格式。因此,指定HTML5的视频时,你必须提供这两种格式。在<video>元素中加上preload="preload"或者只是preload,当用户访问页面时这一属性使得视频得以预载。如果你使用过上面的每一个提到的技术点,你可能已经注意到,使用上面的代码,视频仅仅显示的是张图片,没有控制条。为了渲染出播放控制条,我们必须在video元素内指定controls属性。
<video preload controls> <source src="cohagenPhoneCall.ogv" type="video/ogg; codecs=‘vorbis,theora‘" /> <source src="cohagenPhoneCall.mp4" type="video/mp4; ‘codecs=‘avc1.42E01E, mp4a.40.2‘" /> <p> Your browser is old. <a href="cohagenPhoneCall.mp4">Download this video instead.</a> </p> </video>