关于html5你应该知道的10件事
两年前,HTML5似乎还是一个模糊的概念,只有少数互联网呆子才会关心。现在,感觉好像HTML5无处不在。由于Mozilla和Chrome的快速发布,以及微软IE9的部署,几乎每个人都可以使用有限数量的支持HTML 5的浏览器。开发人员开始利用那些广泛实现的特性。HTML 5将在不到一年的时间内得到全面支持,该规范正在迅速达到稳定状态。现在是了解一些关于HTML 5的信息的好时机。

1: XHTML不再,HTML 5永存。
XHTML是喜欢精确的人的选择,尤其是在解析方面。HTML在外观上一直与XML相似,但它永远不可能与XML完全相同。因此,试图将其解析为XML将会失败。所以不久前制定了XHTML来代替HTML语言,并将其归类为XML术语。HTML 5第一次启动的时候,XHTML 2也在进行中,不过最后还是封了。相反,HTML 5规范的目的是使您能够编写遵循严格的XML语法并且可以工作的HTML 5文件。如果将它与XML MIME类型一起发送,客户机也会将其解析为XML文档。这让开发人员两全其美。
2:2022年的神话,2011年的现实
对HTML 5的一个普遍误解是,它要到2022年才能完成。典型的佐证是几年前我对HTML 5规范的编辑Lan hickson的一次采访。具有讽刺意味的是,即使在那次采访中,他对2022年的日期也很清楚。但有些人对此感到兴奋,他们愤怒的文章比实际事实吸引的注意力多得多。
事实是,2022年是希克森预计HTML5规范成为完整的W3C推荐标准的日子,届时将会有两个100%完成且可验证的实现。这不仅毫无意义,而且是一个巨大的飞跃。为了让大家知道为什么这么说,可以认为HTML规范的其他版本都没有到那个位置,主要是太模糊了,任何实现都无法验证和正确。而HTML 5规范接近固化,也就是现在,2011年。
3:对于大多数开发者来说,这是Flash和Silverlight的杀手锏。
至于如何标记文档,虽然HTML 5做了一些改进,但大的关注点还是应用。HTML为支持应用程序开发而引入的特性数量惊人。这并不是说Flash和Sliverlight很快就会消失。但微软已经宣布,其重新定位Sliverlight的重点是浏览器之外的体验。Flash和Silverlight仍然有一些HTML 5没有的功能,但对于许多共同的目标来说,差距不再,这要归功于HTML 5的新功能。重写现有的应用程序可能不值得,但你应该看看HTML 5对新应用程序是否有意义。
4.它是许多新工具的基础。

随着HTML 5成为一个完全成熟的应用框架,工具制造商,尤其是那些旨在克服跨平台开发问题的工具制造商,现在正将其作为产品的基础技术。如果您正在寻求编写跨平台的应用程序,并且它在HTML 5的能力范围之内,那么您应该考虑这些工具。这一点对于移动领域尤其重要,否则,对于每一个你打算瞄准的手机平台,你都需要学习全新的语言、API和框架。
5:重要且有争议的标签
“HTML 5的最佳新特性”我个人的选择是tag。以前,你必须求助于Flash或Silverlight来为你的网站提供媒体播放器。有了这些新标签,理论上,那些日子一去不复返了。为什么只是“理论上”?可悲的是,由于专利的原因,不同的浏览器制造商不确定应该支持哪种格式。一旦尘埃落定,Flash和Silverlight都将失去其头号用户案例。
6:谷歌谷歌,带头大哥
如果看起来Chrome浏览器在HTML 5上开了一个极好的头,那么也有很好的理由。在制定HTML规范的过程中,代码的编写和部署被赋予了丰富的色彩和浓重的笔墨。我并不是说,无论任何浏览器供应商做什么,他们都会“盖章”。但是,你很难说服那些参与编写规范的人接受未实现的特性,已实现的特性更有可能被纳入作为新规范的基础。由于似乎每隔几周就会有新版本的Chrome问世,因此谷歌添加的新功能很有可能也会包含在HTML5规范中。
7:“标准兼容”终于被证明了。
每当有人宣称某个浏览器是或者不是“标准兼容”的时候,我都要笑。在HTML 5之前,几乎无法证明标准兼容性。在许多情况下,当前的规范在重要问题上过于模糊或者干脆保持沉默。因此,不同的浏览器可以做各种不同的事情,它们仍然要么是标准兼容的,要么被归类为“不兼容和不可验证的”。即使是最著名的ACID测试也证明不了什么,因为它只测试了HTML的一个子集。虽然HTML 5的门槛提高了很多,但终于可以证明一个用户代理是标准兼容的了。事实上,2022年达到“建议”状态的日期背后的原因之一是需要编写一个完整的测试包。
8:“标准兼容”还是不能保证外观

Web浏览器中的标准兼容性并不像人们通常认为的那样,HTML 5并没有改变这一事实。HTML的一大困惑是,很多网页设计师和开发者认为HTML规范控制了屏幕项目的外观;实际上不是。例如,如果它喜欢,Web浏览器可以让tag使用更大或不同颜色的字体,而不是粗体字体,并且仍然保持兼容性。很多时候,当设计师说浏览器与标准不兼容时,他们遇到的实际上是在如何显示标签方面给予用户代理的灵活性。HTML5并没有改变这个事实。如果你必须让标签准确显示,不要期待浏览器的默认行为,在CSS中指定你的要求。
9.分析更加准确
HTML5规范最后引入了精确的解析规则,并定义了用户代理在遇到解析错误时应该做什么。因此,你可以预料到,一些过去被接受甚至“合法”的HTML不再符合要求。您需要熟悉HTML5的解析规则,并确保您的代码符合它的要求。
10: HTML5远非浏览器
在以前的HTML版本中,有一个固有的假设,即传统的Web浏览器是用户代理的选择。尽管也支持其他用户代理和内容类型,但隐含的思想是它们并不同等重要。然而,对于非浏览器、非桌面规模的用户代理,HTML5在更加平等地对待浏览器方面做了许多改变。像它在屏幕阅读器和手机上工作得如何之类的事情已经取得了很大进展。因此,对于需要它的开发人员来说,编写良好的HTML5是一个可以“编写一次并在任何地方查看”的框架,它也可以为那些否则将与Web斗争的用户工作。


