我们来一起看看新的HTML5有什么新的特性和使用技巧吧。如果你对HTML5还不是很了解,那么下面这些内容可以帮你快速进阶。
1、新的doctype
还在用下面这个长的根本没法记住的doctype吗?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
如果是,那么赶紧使用新的吧。
<!DOCTYPE html>
事实上,HTML5根本不需要这个东西,这是用来给浏览器兼容用的,如果浏览器不认识一个doctype,那么他会使用标准模式来解析。所以,没什么好担心的,尽管用吧。
2、Figure元素
看看下面的这个图片的说明部分吧:
<img src="path/to/image" alt="About image" />
<p>Image of Mars. </p>
想把图片和相应的说明文字写在一起还真不是个容易的事情,在HTML5里面这就好办了:
<figure>
<img src="path/to/image" alt="About image" />
<figcaption>
<p>This is an image of something interesting. </p>
</figcaption>
</figure>
3、重定义了<small>
以前我还用这个标签来显示Logo下面的小字,这是个不错的表示标签,但是现在,这就是不推荐的做法了。这个标签被重定义了,用来表示用于打印的小字体了。
4、script和 link标签都不再有type属性了
<link rel="stylesheet" href="path/to/stylesheet.css" type="text/css" />
<script type="text/javascript" src="path/to/script.js"></script>
以前的这种写法都不是必须的了,可以省去type属性。
5、要不要引号都无所谓了
<p class=myClass id=someId> Start the reactor.
HTML5不是XHTML,没有那么严格的要求,加不加引号看你自己了。
6、让你的内容成为可编辑的
新的浏览器的contenteditable属性非常不错,可以让你的元素成为可编辑的,这些可以用在一些 todo list之类的应用上,然后调用本地存储。使用这个属性的元素和他的子元素都会获得这个特性。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>untitled</title>
</head>
<body>
<h2> To-Do List </h2>
<ul contenteditable="true">
<li> Break mechanical cab driver. </li>
<li> Drive to abandoned factory
<li> Watch video of self </li>
</ul>
</body>
</html>
7、Email输入框
我们可以给表单的输入框赋予email属性,这样浏览器就能以email的合法格式来检测输入框的内容了。我们现在还不能100%的依附这个,因为一些旧的浏览器不支持email属性,他只会把这当成是普通输入框。要校验格式还得靠自己。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>untitled</title>
</head>
<body>
<form action="" method="get">
<label for="email">Email:</label>
<input id="email" name="email" type="email" />
<button type="submit"> Submit Form </button>
</form>
</body>
</html>
8、输入框的默认提示文字
以前,我们要给输入框写上提示文字,就得用js来控制,而HTML5现在支持这个特性了,只要这样写就可以了:
<input name="email" type="email" placeholder="XXX@XXX.com" />
当然,现在还不是所有的浏览器都支持这个属性,比如Firefox和Opera就不行,但是这也不影响什么。
9、本地存储
使用本地存储,我们就可以让浏览器记住我们的输入,就算是刷新或者关掉浏览器再打开也无妨。
当然,并不是所有浏览器都支持这个特性,支持的有IE8,Safari,Firefox3.5+,对于那些老版的浏览器,应该使用window.localStorage检验一下是否支持。
10、语义化的header和footer
以前我们这样写:
<div id="header">
...
</div>
<div id="footer">
...
</div>
使用了HTML5之后,就可以这样写了:
<header>
...
</header>
<footer>
...
</footer>
11、更多HTML5的表单特性
12、IE与HTML5
不幸的是,IE需要一些额外的配置来支持HTML5的元素。
在IE 中,所有的元素都有一个默认的display:inline;
为了正确渲染HTML5中的块级元素,我们需要这样写:
header, footer, article, section, nav, menu, hgroup {
display: block;
}
但是IE会忽略这些样式,因为他根本就不知道header是什么,还好,还有解决办法:
document.createElement("article");
document.createElement("footer");
document.createElement("header");
document.createElement("hgroup");
document.createElement("nav");
document.createElement("menu");
很奇怪,这些代码在IE中就能起作用。
13、hgroup
想象这样的场景,在我博客的头部,我需要一个大标题,然后紧接着一个副标题,在HTML4中我虽然可以使用H1,H2来分表表示,但是还是不够语义化,HTML5中可以这样:
<header>
<hgroup>
<h1> Recall Fan Page </h1>
<h2> Only for people who want the memory of a lifetime. </h2>
</hgroup>
</header>
14、required属性
Form添加了required属性,用来标记那些必填项。有两种写法。
<input type="text" name="someInput" required>
或者
<input type="text" name="someInput" required="required">
15、autofocus属性
如果我们需要输入框被选中,那么我们可以使用autofocus属性:
<input type="text" name="someInput" placeholder="Douglas Quaid" required autofocus>
16、支持音频
HTML5中我们不再需要而外的插件来播放音频了。 HTML5现在支持了audio标签,我们也不必在乎那些插件了。不过现在只有少部分的浏览器支持这个特性,还是需要做一些向下兼容的处理的:
<audio autoplay="autoplay" controls="controls">
<source src="file.ogg" />
<source src="file.mp3" />
<a href="file.mp3">Download this file.</a>
</audio>
Mozilla和Webkit还是有些合不来的,所以需要至少写两种格式的,safari的话他先读取到了ogg格式,那么他就会使用ogg格式,IE现在支持wav格式的。
17、支持视频
与对音频的支持类似,HTML5也支持视频:
<video controls preload>
<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>
1 我们并不强迫写type属性,浏览器会自己解析。
2 不是所有浏览器都能支持HTML5视频,所以还需要一个下载链接或者Flash视频。
3 controls和preload属性我们后面介绍
18、预加载视频
preload属性正如你所想。但是,你的相好是不是要先加载视频,如果你的页面主要就是为了显示这个视频,那么绝对要先加载,增强用户体验。他的用法也很简单,你前面也看到了。
19、显示控制条
如果不加controls属性,那么这个视频就只是画面部分,没有控制条,加上之后就会出现。
20、正则表达式
你有没有计算过你多久就要针对一个input写一些特别的验证,使用新的正则属性,我们就可以很方便的添加正则验证。
<form action="" method="post">
<label for="username">Create a Username: </label>
<input type="text"
name="username"
id="username"
placeholder="4 <> 10"
pattern="[A-Za-z]{4,10}"
autofocus
required>
<button type="submit">Go </button>
</form>
如果你熟悉正则表达式,那么应该很容易就可以看到上面的正则是为了校验4-10个大写或小写字母。
21、支持属性的能力检测
如果我们不知道浏览器是不是支持这些特性,那这些特性有什么好处呢?这个问题问得好,有很多种办法,我们这里讨论两种。第一,我们可以使用优秀的Modernizr库。或者,我们可以创建一些元素然后来检测,比如:
alert( 'pattern' in document.createElement('input') ) // boolean;
jQuery也使用了类似的方法:
<script>
if (!'pattern' in document.createElement('input') ) {
// do client/server side validation
}
</script>
22、Mark元素
可以将他想象为一个高亮器,与用户的行为相关。例如,我搜索了open your mind,然后我就可以用js将包含这个字符串的元素用mark包起来。
<h3> Search Results </h3>
<p> They were interrupted, just after Quato said, <mark>"Open your Mind"</mark>. </p>
23、什么时候使用<div>
我们现在有了footer,header,section,那么什么时候使用div呢,应该在没有更好的元素可以用的情况下使用。
比如,你发现你需要将一段代码放在一起,然后固定在页面的某个位置,那么这个时候div就很管用。如果你打算将你的新博文包起来或者给footer加一些链接,那么这个时候<article>和<nav>更加语义化一些。
24、现在有什么马上能用的么
说起HTML5这些特性,有些人可能觉得这得2022年才能普及吧,那现在搞有啥意义呢?其实这是不对的,有些东西我们现在就能用,保持代码的赶紧整洁,还是很必要的。
25、什么不是HTML5
理解倒是什么是HTML5对于开发人员还是比较重要的,要么很多时候会尴尬的。
1 SVG:不是HTML5,它至少5岁了。
2 CSS3:它不是HTML5,它是css。
3 地理位置(Geolocation):不是HTML5.
4 本地存储:不是HTML5,曾经是一个特性,但是被移除了。
5 Sockets:不是HTML5,有它自己的规范。
虽然这些也都是很新鲜的技术,但是他们真的不是HTML5。事实上,这些规范也是相同的一些人在制定。
26、其他属性
现在我们也有了可以定制私有属性的规范了:
<div id="myDiv" data-custom-attr="My Value"> Bla Bla </div>
获取属性值:
var theDiv = document.getElementById('myDiv');
var attr = theDiv.getAttribute('data-custom-attr');
alert(attr); // My Val
在css中也可以使用:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Sort of Lame CSS Text Changing</title>
<style>
h1 { position: relative; }
h1:hover { color: transparent; }
h1:hover:after {
content: attr(data-hover-response);
color: black;
position: absolute;
left: 0;
}
</style>
</head>
<body>
<h1 data-hover-response="I Said Don't Touch Me!"> Don't Touch Me </h1>
</body>
</html>
这里可以查看示例。
27、output元素
正如你所想的,output元素就是用来展示一些计算值的。比如你计算当前鼠标的位置,或者一些数字的和,下面我们就来看看计算两个数字和的例子:
<form action="" method="get">
<p>
10 + 5 = <output name="sum"></output>
</p>
<button type="submit"> Calculate </button>
</form>
<script>
(function() {
var f = document.forms[0];
if ( typeof f['sum'] !== 'undefined' ) {
f.addEventListener('submit', function(e) {
f['sum'].value = 15;
e.preventDefault();
}, false);
}
else { alert('Your browser is not ready yet.'); }
})();
</script>
对这个元素的支持还是有点挫的,上面这段代码下,如果浏览器不支持output属性,那么就会弹出一个对话框告知计算结果。
28、使用Range input创建一个幻灯片
现在只有Opera完全支持range input的max,min,step和value属性,为了快速说明,我们来看一个例子。
HTML部分:
<form method="post">
<h1> Total Recall Awesomness Gauge </h1>
<input type="range" name="range" min="0" max="10" step="1" value="">
<output name="result"> </output>
</form>
CSS部分:
body {
font-family: 'Myriad-Pro', 'myriad', helvetica, arial, sans-serif;
text-align: center;
}
input { font-size: 14px; font-weight: bold; }
input[type=range]:before { content: attr(min); padding-right: 5px; }
input[type=range]:after { content: attr(max); padding-left: 5px;}
output {
display: block;
font-size: 5.5em;
font-weight: bold;
}JS部分:
(function() {
var f = document.forms[0],
range = f['range'],
result = f['result'],
cachedRangeValue = localStorage.rangeValue ? localStorage.rangeValue : 5;
// Determine if browser is one of the cool kids that
// recognizes the range input.
var o = document.createElement('input');
o.type = 'range';
if ( o.type === 'text' ) alert('Sorry. Your browser is not cool enough yet. Try the latest Opera.');
// Set initial values of the input and ouput elements to
// either what's stored locally, or the number 5.
range.value = cachedRangeValue;
result.value = cachedRangeValue;
// When the user makes a selection, update local storage.
range.addEventListener("mouseup", function() {
alert("The selected value was " + range.value + ". I am using local storage to remember the value. Refresh and check on a modern browser.");
localStorage ? (localStorage.rangeValue = range.value) : alert("Save data to database or something instead.");
}, false);
// Display chosen value when sliding.
range.addEventListener("change", function() {
result.value = range.value;
}, false);
})();
转自
http://www.jzxue.com/wangyesheji/html/201104/15-7119.html
分享到:
相关推荐
- **定义**:HTML5是超文本标记语言(HyperText Markup Language)的最新标准,它引入了许多新特性,如视频、音频支持、画布元素等,使得Web页面能够实现更丰富的功能。 - **优势**:相比之前的版本,HTML5更加...
在压缩包中的"开发人员必知的28个HTML5新特性及技巧.doc"文档,你可能会发现更多关于HTML5的新特性,比如本地存储(localStorage和sessionStorage)、Web Workers和Web Sockets等,这些都是HTML5为了提升Web应用功能...
本教程专为Web开发人员设计,由Klaus Forster撰写,旨在帮助开发者掌握HTML5的核心概念和实践技巧。 HTML5的核心特性包括: 1. **语义化元素**:HTML5引入了如、、、、和等新元素,它们提供了更好的文档结构,使得...
这两本PDF书籍,"HTML5高级程序设计"和"深入HTML5应用开发",将为读者提供全面且深入的HTML5知识。 "HTML5高级程序设计"可能会涵盖以下主题: 1. **HTML5新特性**:包括新的语义化标签(如、、等)、离线存储...
根据提供的文件信息,本文将对《HTML5移动开发即学即用》这一主题进行深入解析。本书主要聚焦于HTML5在移动开发领域的应用与实践,为读者提供了丰富的理论知识和实用的操作指南。以下是对该书内容及核心知识点的详细...
“HTML5移动Web开发.pdf”这份资源很可能是详尽的教程或参考手册,涵盖了以上及更多HTML5在移动场景下的应用技巧和最佳实践。通过学习,你可以掌握创建高性能、跨平台的移动Web应用所需的知识,为你的职业发展打下...
HTML5游戏开发技术是当前互联网领域的一个热门话题,随着移动设备的普及和浏览器技术的提升,HTML5成为了创建跨平台游戏的理想选择。本资源提供的"HTML5游戏开发(全).pdf"很可能是一本全面介绍HTML5游戏开发的书籍,...
### 初学者必知的HTML 5入门级技巧详解 #### 一、新的Doctype声明 随着HTML 5的到来,Doctype声明变得极为简洁。在XHTML时代,我们需要使用一个非常冗长的Doctype声明: ```html <!DOCTYPE html PUBLIC "-//W3C//...
《HTML5 Canvas游戏开发实战》主要讲解使用HTML5 Canvas来开发和设计各类常见游戏的思路和技巧,在介绍HTML5 Canvas相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读者不仅知其然,而且知其所以然。...
对于游戏开发,HTML5引入了新的元素如`<canvas>`,这是一个用于动态图形和交互式内容的画布,以及WebGL,这是一种允许在浏览器中进行3D图形渲染的技术。这些特性使得HTML5成为创建互动游戏的理想选择。 在...
HTML5是Web开发领域中的一个里程碑,它是超文本标记语言HTML的最新版本,引入了许多新的特性和改进,旨在提升网页的交互性、可访问性和性能。对于初学者来说,掌握HTML5的基础知识和技巧至关重要,这将为未来的学习...
### 解读 HTML5:建议、技巧和技术 #### HTML5概览 HTML5是Web开发领域的一项重大革新,它不仅提供了一系列新的元素与属性,还引入了多媒体支持、绘图能力以及离线存储等功能,旨在简化网页开发过程并提高用户体验...
HTML5是一种先进的网页技术,它在过去的十年里彻底改变了网页应用程序的开发方式。这个"html5开发的塔防游戏.zip"资源提供了一个基于HTML5构建的塔防游戏的完整解决方案,名为"HTML5 塔防 游戏_HTML5游戏_solution4...
学习HTML5和CSS3的实战技巧,包括页面布局、交互设计、性能优化和移动适配,对于任何想要进入这个领域的开发者来说都至关重要。 "电子教案"可能包含详细的课程大纲、实例代码、讲解视频、练习题和解决方案等,旨在...
### 22个HTML5 技巧三:深入解析视频支持与更多高级特性 #### 16. 视频支持 HTML5引入了一系列强大的新特性,其中之一就是原生的视频支持。通过`<video>`标签,开发人员可以直接在网页中嵌入视频内容,无需额外的...
1. HTML5游戏框架:HTML5自身并不直接支持游戏开发,但它的新特性如Canvas、WebGL和Audio API为游戏开发提供了基础。在这个连连看游戏中,可能使用了Canvas元素来绘制游戏界面,通过JavaScript控制游戏逻辑,实现...
HTML5是超文本标记语言的最新版本,它在原有基础上引入了大量新特性,旨在提升网页的交互性和多媒体支持。例如,HTML5的 `<canvas>` 元素提供了一个可编程的画布,开发者可以利用JavaScript在上面绘制2D和3D图形。...
该书详细介绍了HTML5和CSS3这两个现代Web开发的重要技术,并且深入浅出地讲解了如何利用它们进行高效、美观的Web页面构建。书中涵盖了308页的内容,定价为39元,是初学者和进阶开发者学习Web前端技术的宝贵资源。 ...
这本"WEB开发人员参考大全_最完整的HTML.CSS与JAVASCRIPT工具书"正是针对这些关键技能提供的一份详尽学习资源。 HTML(HyperText Markup Language)是创建网页内容的标准标记语言,它定义了网页的结构。HTML元素由...