日期:2014-05-17  浏览次数:20731 次

开发人员必知的28个HTML5新特性及技巧
我们来一起看看新的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、hgrou