HTML5须知十件事
英文原文:10 things you should know about HTML5
一两年前,HTML5似乎还是一个模糊的概念,只有少数几个互联网的书呆子才会关心。而现在,却感觉仿佛HTML5无所不在了。感谢Mozilla和Chrome的快速发布,以及微软IE9的部署(IE10现在也处于“技术预览”状态了),数量有限(或者说比有限要更好些)的支持HTML 5的浏览器已将近人人皆可享受。开发人员开始利用那些得到广泛实现的功能特性。不出1年HTML 5就将得到完全支持,而规范也正在迅速到达稳定状态,现在正是了解一些HTML 5须知的好时机。
1: XHTML不再,(支持XML 语法的)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规范的编辑兰·希克森(Ian Hickson)的一次采访。具有讽刺意味的是,即便是在那次采访中,他对2022年这个日期也很明确。但是有些人对此很激动,其愤怒的文章引起的注意要比实际的事实引发的关注多得多。
事实是2022年是希克森预期HTML5规范成为完全W3C推荐的日子,到那个时候将会有两个100%完成的、可验证的实现。这既相当的没有意义,同时又称得上是一次巨大的飞跃,为了让大家了解为什么说,可以想想,没有其他版本的HTML规范曾经达到过那样的地位,这主要是因为对于任何实现来说要做到可验证的正确都太含糊了。而HTML 5规范正接近于固化不变,就是现在,2011年。
3: 对大多数开发人员而言,这是Flash和Silverlight杀手
在如何用于对文档进行标记方面,尽管HTML 5的确做了若干的改进,大的关注点仍是应用。HTML 5所引入的用于支持应用开发的特性的数量是令人惊愕的。这并不是说Flash和Sliverlight很快就会消失。但是微软已经宣布其对Sliverlight重新定位关注点为浏览器以外的体验。Flash和Silverlight仍拥有一些HTML 5不具备的能力,但是对于许多共同目标来说,现在鸿沟不再了,这要归功于HTML 5的新能力。可能重写已有应用并不值得,但是你应该看看HTML 5对于新应用来说是否有意义。(web前端学习交流群:328058344 禁止闲聊,非喜勿进!)
4: 它是许多新工具的基石
随着HTML 5成为一个完全成熟的应用框架,工具制造商,尤其是那些设计用于克服跨平台开发问题的,现在正把他用作其产品的基础技术。如果你正在寻求编写跨平台运行的应用,并且其也在HTML 5的能力范围之内,那么你应当考虑一下这些工具。这对于移动领域尤其重要,否则的话,对于每一个你打算作为目标的手机平台来说,都需要去学习全新的语言、API以及框架。
5: 重要而有争议的tag
“HTML 5最佳新特性”我的个人之选是tag(标签)。之前(也有tag),你自己得求助于Flash或Silverlight来为你的网站提供一个媒体播放器。而有了这些新的标签之后,从理论上来说,那些日子一去不复返了。为什么只是“理论上”呢?令人悲哀的的是,由于专利的缘故,对于应该支持哪种格式,不同的浏览器制造商尚不太能确定。而一旦尘埃落定,Flash和Silverlight都会失去其#1用户案例。
6: 谷歌谷歌,带头大哥
如果说似乎Chrome浏览器在HTML 5上有了一个极好的开端的话,那么这里也有一个好的理由。HTML 5规范的制定进程中给编写和部署代码赋以浓彩重墨。我这么说并不是指他们不管任何浏览器供应商做了什么都会盖上“橡皮图章”了事。但你是很难说服那些参与编写规范的人接受尚未实现的特性,已实现的特性更有可能被列入为规范新项目的基础。由于Chrome似乎每几周就会有一个新版本出来,因此谷歌加进去的新特性也被纳入到HTML5规范里面的机会就会很大。
7: “标准兼容”终获证明
每当有人宣称某个浏览器是或不是“标准兼容”的时候,我都不得不笑起来。在HTML 5之前,标准兼容简直就不可能被加以证明。许多情况下,当前的规范都太过含糊或干脆对重要问题默不作声(像处理解析错误),结果就是不同的浏览器都可以做范围很广的不同事情,并依然要么是标准兼容的,要么是被归类为“不兼容性无法证实”。即便是最著名的ACID测试也证实不了太多东西,由于它只测试了HTML的子集。而HTML 5的门槛则提高了不少,证明一个用户代理是标准兼容的终于有可能了。的确,2022这个到达“建议”状态的日期背后的其中一个原因就是需要编写完全测试包。
8: “标准兼容”仍无法保证外观
Web浏览器里面的标准兼容并没有像人们通常所认为那样的行为,HTML 5也没有改变这一事实。HTML的一个大的困惑是许多的Web设计者和开发人员认为HTML规范控制着屏幕项目的外观;其实不然。举个例子,如果它喜欢的话,Web浏览器可令tag使用更大或不同颜色的字体而非加粗字体,也还能保持兼容性。许多时候,当设计者说浏览器与标准不兼容的时候,其所遭遇到的实际上是赋予用户代理的在如何显示标签方面的灵活性。HTML5并没有改变这一事实。如果你一定要让标签按照精确地方式显示,别指望浏览器的缺省行为,把你的需求在CSS中指定。
9: 解析更为精确
HTML5规范终于引入了精确解析规则,并定义了像用户代理遭遇解析错误时应该做的事情。因此,你可以预期,过去一些习惯于被当做可接受乃至“合法”HTML而通过的东西不再符合要求。你将会想要去熟悉HTML5的解析规则并确保你的代码符合其要求。
10: HTML5远非浏览器
在HTML之前的版本中,存在着一种与生俱来的假设,那就是传统的Web浏览器是用户代理的选择。尽管其他的用户代理和内容类型也得到了支持,隐含的想法是它们并非同等的重要。但是,针对于非浏览器、非桌面大小的用户代理,HTML5在与浏览器更为平等地相待方面做出了很多的改变。像在屏幕阅读器和手机上工作得有多好之类的东西取得了许多进展。因此,对于需要它的开发人员来说,写得好的HTML5是能够“一次编写,随处查看”的框架,它也能够对那些否则就要与Web做斗争的用户(尤其是那些存在各种障碍的人士)起作用。
HTML5须知十件事的更多相关文章
- 转载:关于 Token,你应该知道的十件事
关于 Token,你应该知道的十件事 原文地址:http://alvinzhu.me/blog/2014/08/26/10-things-you-should-know-about-tokens/ 原 ...
- 开始3D编程前需注意的十件事
http://www.csdn.net/article/2013-06-21/2815949-3d-programming 原文作者Vasily Tserekh是名3D编程爱好者,他发表了一篇博文&l ...
- 拿到offer过后--大学最后时光最想做的那十件事
昨天--2014.10.26,历史性的一刻,激动的签了欢聚时代(YY)的前端开发offer,工作地点是我喜欢的珠海(仅仅由于那边有我所向往的海还有自行车队,如今想想都乐开怀了,绕着海边骑单车的感觉真妙 ...
- 关于 C 语言,我喜欢和讨厌的十件事
前言:最近有个家伙抱怨道“为什么我还要再用C?”-虽然我不同意他的说法,但至少他随口提到如果你“在一台拇指大小的电脑”上编程,或者为一门语言写引导程序,那么可以用C语言.要我说,写设备驱动,或者特定平 ...
- 关于iOS7 设计师需要了解的十件事
在今年的WWDC上,苹果推出了采用全新设计语言打造的iOS7.新系统弃用了诸如皮革.木质一类的伪3D拟真效果,取而代之的是更加简洁轻量的设计路线,其中文字排版成了重头戏,另外在某些方面也受到了扁平化设 ...
- IT技术开发人员35岁之前应该做的十件事
第一,学会本行业所需要的一切知识并有所发展.已故零件大王布鲁丹在他35岁时,已经成为零件行业的领袖,并且组建了年收入达千万美元的海湾与西部工业公司.每个人在年轻时都可能有过彻夜不眠.刻苦攻读,这在20 ...
- java程序员最不愿意看到的十件事
0.遍历结果集并构造对象如果你是个时髦的开发者而不是专业人员,显然你从某篇博客中读过有开发者遇到Hibernate的“性能问题”,因而认为ORM都不好,觉得手动编码“明显更好”.喜欢的话你当然可以用 ...
- 关于Git和Github你不知道的十件事
Git 和 GitHub都是非常强大的工具.即使你已经使用他们很长时间,你也很有可能不知道每个细节.我整理了Git和GitHub可能提高日常效率的10个常用技巧. GitHub 快捷键: t 和 w ...
- Solaris:你好奇的十件事
想想你周围的人,看看他们正在使用的操作系统.绝大部分人的电脑都在用主流操作系统:Windows,MacOS,甚至是Ubuntu.当说到Solaris,Unix和BSD的时候,其他人还以为你说鸟语呢.除 ...
随机推荐
- ResourceManager的HA
大家都知道在hadoop2中对HDFS的改进很大,实现了NameNode的HA:也增加了ResourceManager.但是ResourceManager也可以实现HA.你没看错,确实是Resourc ...
- AngularJS 框架
AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML. [Angular JS表达式] 1.Angular JS使用双{{}}绑定方式.用于将表达式的内容输出到页面 ...
- ES6 Promise 对象
Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案--回调函数和事件--更合理和更强大.它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Pro ...
- Codeforces Round #436 (Div. 2) E. Fire
http://codeforces.com/contest/864/problem/E 题意: 有一堆物品,每个物品有3个属性,需要的时间,失效的时间(一开始)和价值.只能一件一件的选择物品(即在选择 ...
- 有趣的flash例子
仓鼠 <object type="application/x-shockwave-flash" data="http://cdn.abowman.com/widge ...
- django celery的分布式异步之路(一) 起步
如果你看完本文还有兴趣的话,可以看看进阶篇:http://www.cnblogs.com/kangoroo/p/7300433.html 设想你遇到如下场景: 1)高并发 2)请求的执行相当消耗机器资 ...
- SQL server 数据库备份大
首先简单的介绍一下Sql server 备份的类型有: 1:完整备份(所有的数据文件和部分的事务日志文件) 2:差异备份(最后一次完成备份后数据库改变的部分) 3:文件和文件组备份(对指定的文件和文件 ...
- web自动化测试从入门到持续集成(selenium webdriver)
在很多刚学习自动化的可能会认为我只需要会运用selenium,我只需要在一个编辑器中实用selenium +java编写了一些脚本那么就会自动化了,是真的吗?答案肯定是假的.自动化肯定是需要做到真的完 ...
- Java集合源码分析(二)Linkedlist
前言 前面一篇我们分析了ArrayList的源码,这一篇分享的是LinkedList.我们都知道它的底层是由链表实现的,所以我们要明白什么是链表? 一.LinkedList简介 1.1.LinkedL ...
- ios 指定页面禁用第三方键盘,使用系统的键盘
因为项目需要,需要在添加银行卡和提现页面使用数字键盘, 如果用户没有安装第三方键盘是没啥大问题的,但是如果用户手机安装了第三方的键盘的话,有时候会无法调用起第三方的数字键盘,或者第三方键盘样式不符合, ...