目前已经有许多文章是关于HTML5的了,例如“HTML5有什么期待?”和“HTML5会如何改变网络”之类的,但是对于Web开发人员来说,最主要需要知道的是:我现在可以用上HTML5来做些什么,我怎么开始使用它?好消息是现在已经有不少的HTML5里的东西可以使用了。但是,开始你就必须要明白一件事情,你需要知道你的受众如何,否则的话你就不该使用HTML5。假如你的站点的访问大部分人都是在使用IE6,那么你完全没有任何理由使用HTML5。另一方面,如果你站点的访问者都是使用手机浏览器,如iPhone和iPad,那么你还在等什么呢?马上就可以开始动手了!等等,这里有一些准则,看完再动手不迟。
你现在可以使用哪些HTML5特性? 虽然HTML5标准现在仍然是个草案,在标准化组织手里依然还在商讨,但是重要的部分已经被许多现代的浏览器实现了。Apple Safari, Google Chrome, Mozilla Firefox, Opera和Microsoft IE9都已经很好的支持了HTML5的部分特性。 先来看看各浏览器在HTML5TEST网站上的得分如何: * Apple Safari 5.0: 208 * Google Chrome 5.03: 197 * Microsoft IE7: 12 * Microsoft IE8: 27 * Mozilla Firefox 3.66: 139 * Opera 10.6: 159 看起来很明显,非IE核心的主流浏览器大部分都对HTML5支持良好,它们可以使“使用了HTML5草案的网站”工作得很好。 回到开始,你现在就可以使用HTML5的doctype了,没有理由不使用,你甚至可以在整个网站里进行查询和替换: <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml”> 变为: <!DOCTYPE html> <html> 下面这部分代码看起来更简洁和直接,不是吗?如果浏览器用一个标准兼容的方式来渲染你的网页,那么他们现在仍然会这么做。 说说视频吧。许多关于HTML5的出版物都会提及到目前的竞争者,一共四个:Flash, H.264, OGG和WebM。所有这些在未来都有可能成为一个标准格式,而且没有一个可以在所有平台所有浏览器上正确播放,很悲哀吧,看起来,浏览器的赞助商们在短 时间内还没有为这个特性准备一个公共的格式。 所以,显而易见的是,Video标签现在还没有到可以应用的阶段。但是等下,人们应该期待HTML5的视频标签是与格式无关的。事实上,因为视频可 以包含多个Source标签,它也必须得这样工作。如果你的浏览器不支持第一个选项,那么就会去尝试第二个,再第三个,四个,五个…… 处理这样的情况的HTML是一个开源项目,支持基于网络的视频,不使用任何脚本和浏览器嗅探,可以在这里找到。 从语义上讲,HTML5的一个大的改变就是那些语义明确化的标签。可以看到的改变是,目前你的站点上充满了类似于这样的代码: <div id=”header”> <span class=”nav”> 而在HTML5中,你可以这样表示: <header> <nav> 是不是语义更明确?当然,我们还是要用CSS[层叠样式表]来格式化这些元素。但是等等,没有一个IE版本可以支持这些标签!这对于人们来说是一个 巨大的问题!我们真的这么倒霉吗?谢天谢地,我们还有一个解决方案:所有你需要做的事情就是把下面的代码粘贴到你的页面的HEAD标签里: <!–[if lt IE 9]> <script src= "http://html5shiv.googlecode.com/svn/trunk/html5.js"> </script> <![endif]–> HTML5 Shiv是一个开源的项目,基于一个简单的发现:如果你在IE里创建了一个DOM元素,那么你就可以用那个名字在样式里使用。例如,如果你使用 document.createElement(“foo”) 创建了一个DOM元素,那么你就可以在当前页面里加入任意数量的foo标签,而且IE会格式化它们。HTML5 Shiv里包含了一些IE不能识别的HTML5元素,然后一个一个的去创建它们。这样你就可以使用这些HTML5标签了,例如: Article, Section, Header, Footer, Nav 智能表单,另一个使HTML5更聪明的特性。如果你对于每次写同样的脚本去检查邮件地址的合法性或者类似于电话号码、网络地址之类的感到厌烦的话,那么你不是一个人!有理由去让浏览器去完成这些烦人的工作,不是吗?相当正确。 下面是语法: <input type="email"> <input type="url"> <input type="number"> <input type="tel"> 那些旧的浏览器会如何处理?比较聪明的部分:如果它们看到一个TYPE属性有个值不认识的话, 那么它们就会用默认值Text去渲染这个元素,这正是我们所期望的向下兼容的结果。支持HTML5的浏览器会自动去验证这个字段类型,但是,你最好还是不 要把以前的脚本扔掉,至少——也要在IE9普及以后。 如果你还想知道除了验证之外,支持这些类型的浏览器还做了些什么事情,那么你可以在iPhone上试试这些表单。你会注意到与表单关联的键盘类型都 会发生变化,有的时候是数字类型的,有的时候是字母类型但附加了一个@符号,还有的甚至直接有一个按键.com,这就是这些元素的魔力。所有你需要做的就 是改变这个type的属性值而已。 还可以更智能一点,这里还有个新属性: placehoder 这个值可以简单地指定一段文本,你经常在网上看到的效果,没值的时候显示此文本,单击的时候值变成空,离开又恢复成该文本,以前要用到Javascript处理,现在浏览器会为你做这个事情了。 <input type="email" placeholder="Your email address"> 有哪些HTML5特性你马上就可以使用? 不是所有的HTML5元素都已经准备好可以使用了,因为种种原因(这些原因是没有一个缩写为 IE 的),浏览器支持马上就要来了,在不远的未来,你马上就有两个元素可以使用了。 魔幻字体,每个设计师都有一个梦想,希望站点的访问者们都安装了他们在设计时所需要的字体,为此,以前可谓手段 百出,用图片,Flash等等不一而足,现在,他们拥有了这个权利,你可以强制你的访问者安装你指定的字体了。这就是CSS3的支持: @font-face属性。Firefox 3.5以前的版本和Safari的移动版本(iOS 4之前)不支持这个属性,如果你的站点有很多这样类似的访问,那么你可能就得等等了。 无论如何,其实没有真正的理由,让所有的浏览器都使用同一种字体的。如果你想提供给那些支持此属性的浏览器以自定义字体,然后让不支持此属性的浏览器有一个可替代的字体也是一个不错的解决方案,这个时候,Font Squirrel’s @font-face 生成器 是个不错的去处。 阴影和圆角,让很多设计师高兴的东西来了,文本阴影、区块阴影,区块圆角特性等现在都CSS3支持的标准了。再说一次,如果你不想用像素级别的完美来衡量在不同浏览器中的渲染的话,那么你现在就可以开始使用这些特性了。CSS3 生成器 会帮助你做好这事。 (责任编辑:admin) |