HTML5设计原理

来源:互联网
责任编辑:王嘉善
字体:

首先路虎不行,因为讲起品牌形象,需要从历史开始说起。从传统上来看路虎最早是做结实耐用的农用车出身,没有看不起的意思,最早的卫士和发现都是农场主用来干活的车,再一个车型较少,这些年营销极为出色,偷换概念,中国被当成了比普通豪华品牌还高一些的存在,举个栗子,英女王的车辆很多,各种用途都有,不能因为女王也有一辆揽胜,就说揽胜是女王座驾,女王用揽胜也是在休闲的场合用的,对吧,那你怎么不说女王现在还有马车,就鼓吹马车高端吧,就让富人去买马车吧。其次,保时捷,确实保时捷比起一般的豪华品牌例如奥迪宝马之类,是要高半级的,设计、做工、售价方面都是如此,但是保时捷的车型也是有限的,最贵的车是跑车,本身受众少,场

站长交易(http://jy.Xue163.com)友情链接交换 虚拟主机评测+IDC导航=net188.cn

这个要看你怎么去处理,比熊犬还是比较粘人的。这个如果出门在外,把狗狗留在寄养中心的话,这个就不建议养了狗狗养起来就跟我们小孩一样,感情非常的深,我自己养的泰迪宝宝,养了3年多了,一直都是去哪里都带着,去旅游也是自驾游,平日的话都是给最好的馋不腻*,加一些蔬菜水果这样。养狗了就要有舍有得要养的话,去旅游也要把狗狗带上,不然不建议养防采集。

Jeremy Keith在 Fronteers 2010 上的主题演讲

我们平时接触的文玩,多以手串居多,像紫檀、绿松石、南红等,价格一般都在几百左右,再贵的可能就小几千吧,但是其中有些文玩,可不是普通老百姓收紧裤裆就能买得起的,其中最有名的大概就属天珠,奇楠,沉香和红珊瑚了。但随着市场炒作风潮的盛行,一颗天珠价值几十万,甚至几千万。如今普通玩家没有机会见识到*的沉香,也别想着去捡漏。在市面上奇楠的工艺品是按照克数出售的,一串需要几十万。由于采挖的难度很大,在市面上不太容易看到这种琥珀。这样一来,红珊瑚的价格自然会上涨,一般人买不起。如今的文玩市场可谓是全民参与,大家都有自己喜欢的文玩。只不过玩家入手时都比较谨慎,因为一些文玩的确很;烧钱。在2009年北京中嘉国防采集。

下载PPT(PDF)

故宫,是明清两个朝代的皇宫,号称世界五大宫之首,先后曾经有24位皇帝在此居住。游览过故宫的朋友都知道,故宫大概在每天下午五点左右开始清场,有的宫殿目前还不对外开放。为什么故宫关门这么早呢?这和故宫早年流传的传说有关,而且传得是神乎其神。传的最神的有两个,一是阴兵过路,一是散步的宫女。所谓“阴兵过路”,就是阎王夜在阳间巡逻的时候,先行让阴兵开道,凡人切不可抬头看,否则会有血光之灾。传说故宫发生过阴兵过路的事件。再有一个就是故宫常说的一闪而过的宫女,他们手提宫灯,排成一列。不过这两个令人毛骨悚然的事件没有留下任何的证据,但却给故宫的工作人员带来无形的工作压力。因此,故宫在下午五点关门清场,主要有以防采集。

观看视频

今天我想跟大家谈一谈HTML5的设计。主要分两个方面:一方面,当然了,就是HTML5。我可以站在这儿只讲HTML5,但我并不打算这样做,因为如果你想了解HTML5的话,你可以Google,可以看书,甚至可以看规范。

实际上,确实有人会谈到规范的内容。史蒂夫·?四桑⊿teve Faulkner)会讲HTML5与可访问性。而保罗·艾里什(Paul Irish)则会讲HTML5提供的各种API。因此,我今天站在这里,不会光讲一讲HTML5就算完事了。

说老实话,在正式开始之前,我想先交待清楚我所说的HTML5到底是什么意思。这话听起来有点搞笑:这会子你一直在说HTML5,难道我们还不知道什么是HTML5吗?大家知道,有一个规范,它的名字叫HTML5。我所说的HTML5,指的就是这个规范。但问题是,有些人所说的HTML5,指的不仅仅是这个规范,还有别的意思。比如说,用HTML5来代指CSS3就是一种常见的叫法。我可不是这样的。我所说的HTML5,不包含CSS3,就是HTML5。

类似的术语问题以前也有过。Ajax本来是一种含义明确的技术,但过了不久,它的含义就变成了“用JavaScript来做一切好玩的东西”。这就是Ajax,对不对?今天,HTML5也面临同样的问题,它本来指的是一个特定的规范,但如今含义却成了“在Web上做一切好玩的事。”我说的不是这种HTML5,不是这种涵盖了最近刚刚出现的各种新东东的HTML5。我说的仅仅是规范本身:HTML5。

刚才已经说了,我今天想要讲的内容不多,也没有打算介绍HTML5都包含什么。今天我要讲的是它的另一方面,即HTML5的设计;痪浠八,我要讲的不是规范里都包含什么,而是规范里为什么会包含它们,以及在设计这个规范的时候,设计者们是怎么看待这些东西的。

设计原理

设计原理本质上是一种信念、一种想法、一个概念,是你行动的支柱。不管你是制定规范,还是制造一种有形的物品,或者编写软件,甚至发明编程语言。你都能找到背后的一个或者多个设计原理,多人协作的任何成果都是例证。不仅仅Web开发领域是这样。纵观人类历史,像国家和社会这样大规模的构建活动背后,同样也有设计原理。

就拿美国为例吧,美国的设计原理都写在了《独立宣言》中了。

<$xue63fenye$><$lovfpfenye$>

我们认为这些真理是不言而喻的,人人生而平等,造物主赋予了每个人不可剥夺的权利,包括生存、自由和追求幸福。

这里有一句口号:生存、自由和追求幸福。这是被写进宪法中的核心理念,它关系到我们所有人的一切,也就是我们构建自己社会的原则。

还有一个例子,就是卡尔·马克思(Karl Marx),他的著作在20世纪曾被奉为建设社会主义的圭臬。其基本思想大致可以归结为下面这条设计原理:

<$xue63fenye$><$lovfpfenye$>

各尽所能,各取所需。

这其实就是一种经济体系背后的设计原理。

还有一个例子,比前面两个的历史更久远一些,不过大同小异:

<$xue63fenye$><$lovfpfenye$>

人人为我,我为人人。

这个极为简单的设计原理,是两千年前的拿撒勒犹太人耶稣*提出来的。而这条原则成为了后来许多宗教的核心教义。原理与实践有时候并不是同步的。

下面是小说中的一个例子。英国小说家乔治·奥威尔(George Orwell)笔下的《动物庄园》,就是在一条设计原理的基础上构建起来的虚拟社会。这条设计原理是:

<$xue63fenye$><$lovfpfenye$>

四条腿的都是好人,两条腿的都是坏蛋!

《动物庄园》中有意思的是,随着社会的变迁——变得越来越坏,这条设计原理也跟着发生了改变,变成了“四条腿的都是好人,两条腿的就更好了。”最关键的是,即使是在虚构的作品里,设计原理都是存在的。

还有一套虚构的作品是以三条设计原理为基础构建起来的,那就是美国著名小说家艾萨克·阿西莫夫(Issac Asimov)的机器人经典系列。阿西莫夫发明了机器人学这个术语,并提出了机器人学三*则,然后在这三个简单的设计原理基础上创作了一系列经典作品——大约有50本书。无论作品的情节如何变化,实际上都是从不同的角度来阐释这三大设计原理。我想,在座各位对机器人三*则都不应该陌生。

<$xue63fenye$><$lovfpfenye$>

机器人不得伤害人类,或袖手旁观人类受伤害。

机器人必须服从人类命令,除非命令违反第一法则。

机器人必须自卫,只要不违背第一和第二法则。

这些恐怕是第一次出现在小说中的针对软件的设计原理了。虽然基于这三个设计原理的软件运行在虚构的机器人的“正电子脑”中,但我想这应该是软件设计原理的事实开端。从此以后,我们才看到大量优秀软件背后的设计原理。

$网神分页符$

站长交易(http://jy.Xue163.com)友情链接交换 虚拟主机评测+IDC导航=net188.cn

这个要看你怎么去处理,比熊犬还是比较粘人的。这个如果出门在外,把狗狗留在寄养中心的话,这个就不建议养了狗狗养起来就跟我们小孩一样,感情非常的深,我自己养的泰迪宝宝,养了3年多了,一直都是去哪里都带着,去旅游也是自驾游,平日的话都是给最好的馋不腻*,加一些蔬菜水果这样。养狗了就要有舍有得要养的话,去旅游也要把狗狗带上,不然不建议养防采集。

<$xue63fenye$><$lovfpfenye$>

蒂姆·伯纳斯-李(Tim Berners-Lee),Web的发明者,在W3C的网站上发表过一份文档,其中有一个URL给出了他自己的一套设计原理。这些设计原理并不那么容易理解,不仅多,而且随着时时间推移,他还会不断补充、修改和删除。不过我还是觉得把自己认同的设计原理写出来放在某个地方真是个不错的主意。

实际上,CSS的发明人之一伯特·波斯(Bert Bos),也在W3C的网站上放着一份文档,其中讲的都是基本的设计原理,比如怎样设计并构建一种格式,无论是CSS还是其他格式。推荐大家看一看。

只要你在W3C的站点中随便找一找,就可以发现非常多的这种设计原理,包括蒂姆·伯纳斯-李个人的。当然,你还会看到他从软件工程学校里借用的一些口号:分权(decentalisation)、容忍(tolerance)、简易(simplicity)、?榛╩odularity)。这些都是在他发明新格式的时候,头脑中无时无刻不在想的那些关键词。

在座各位对蒂姆·伯纳斯-李的贡献都是非常熟悉的,因为大家每天都在用。他发明了Web,与罗伯特·卡里奥(Robert Cailliau)共同发明了Web,而且在发明Web的同时,也发明了我们每天都在Web上使用的语言。当然,这门语言就是HTML:超文本标记语言。<$xue63fenye$><$lovfpfenye$>

HTML

HTML最早是从2.0版开始的。从来就没有1.0版。如果有人告诉你说,他最早是从HTML 1.0开始使用HTML的,那他绝对是在忽悠你。从前确实有一个名叫HTML Tags的文档,其中的部分标签一直用到现在,但那个文档并非官方的规范。

使用标签、尖括号、p或h1,等等,并不是蒂姆·伯纳斯-李首创的想法。当时的SGML里就有了这些概念,而且当时的CERN(Conseil Europeen pour la Recherche Nucleaire,欧洲核子研究委员会)也在使用SGML的一个特定的版本。也就是说,即便在那个时代,他也没有白手起家;这一点在HTML后来的发展过程中也体现了出来:继往开来、承前启后,而不是另立门户、从头开始。

换句话说,这篇名为HTML Tags的文档可以算作HTML的第一个版本,但它却不是一个正式的版本。第一个正式版本,HTML 2.0,也不是出自W3C之手。HTML 2.0是由IETF,因特网工程任务组(Internet Engineering Task Force)制定的。在W3C成立之前,IETF已经发布了不少标准。但从第三个版本开始往后,W3C,万维网联盟(World Wide Web Consortium)开始接手,并负责后续版本的制定工作。

20世纪九十年代HTML有过几次快速的发展。众所周知,在那个时代要想构建网站,可是一项十分复杂的工程。浏览器大战曾令人头疼不已。市场竞争的结果就是各家浏览器里都塞满了各种专有的特性,都试图在专有特性上胜人一筹。当时的混乱程度不堪回首,HTML到底还重不重要,或者它作为Web格式的前景如何,谁都说不清楚。

从1997年到1999年,HTML的版本从3.2到4.0到4.01,经历了非?斓姆⒄。问题是到了4.01的时候,W3C的认识发生了倒退,他们说“好了,这个版本就这样了,HTML也就这样了;HTML 4.01是HTML的最后一个版本了,我们用不着HTML工作组了。”

W3C并没有停止开发这门语言,只不过他们对HTML不再感兴趣了。在HTML 4.01之后,他们提出了XHTML 1.0。虽然听起来完全不同,但XHTML 1.0与HTML 4.01其实是一样的。我的意思是说,从字面上看这两个规范的内容是一样的,词汇表是一样的,所有的元素是一样,所有的属性也都是一样的。唯一一点不同之处,就是XHTML 1.0要求使用XML语法。也就是说,所有属性都必须使用小写字母,所有元素也必须使用小写字母,所有属性值都必须加引号,你还得记着使用结束标签,记着对img和br要使用自结束标签。

从规范本身的内容来看,实际上是相同的,没有什么不同。不同之处就是编码风格,因为对浏览器来说,读取符合HTML 4.01、HTML 3.2,或者XHTML 1.0规范的网页都没有问题,对浏览器来说这些网页都是一样的,都会生成相同的DOM树。只不过人们会比较喜欢XHTML 1.0,因为不少人认同它比较严格的编码风格。

到了2000年,Web标准项目(Web Standards Project)的活动开展得如火如荼,开发人员对浏览器里包含的那些乱七八糟的专有特性已经忍无可忍了。大家都很生气,就骂那些浏览器厂商“遵守个规范就他妈的真有那么难吗?”当时CSS有了长足的发展,而且与XHTML 1.0结合得也很紧密,CSS加XHTML 1.0基本上就可以算是“最佳实践”了。虽然在我看来HTML 4.01与XHTML 1.0没有本质上的不同,但大家都接受了。专业的开发人员能做到元素全部小写,属性全部小写,属性值也全部加引号:由于专业人员起到了模范带头作用,越来越多的人也都开始支持这种语法。<$xue63fenye$><$lovfpfenye$>

我就是一个例子!过去的10年,我一直都使用XHTML 1.0文档类型,原因是这样一来验证器就能给我帮上很大的忙,对不对?只要我写的是XHTML 1.0,然后用验证器测试,它就能告诉我是不是忘了给属性值加引号,是不是没有结束某个标签,等等等等。而如果我写的是HTML 4.01,同样的问题就变成了有效的了,验证器就不一定会提醒我了。

这就是我一直使用XHTML 1.0的原因。我估计很多人都……使用XHTML 1.0的朋友,请把手举起来。好的。HTML 4.01呢?人少多了。一直没有举手的呢,大声点,你们用什么?HTML5,也很好!更早的呢,还有人使用更早的文档类型吗?没有了?

10年来我一直使用XHTML 1.0,就是因为验证器能够真正帮到我。有人用XHTML 1.1吗?你知道有人用吗?请举手,别放下。有人把网页标记为XML文档吗?有吗?那你们使用的就不是XHTML 1.1。

这就是个大问题。XHTML 1.0之后是XHTML 1.1,只是小数点后面的数字加了一个1,而且从词汇表的角度看,规范本身没有什么新东西,元素也都相同,属性也都相同。但对XHTML 1.1来说,唯一的变化是你必须把自己的文档标记为XML文档。在使用XHTML 1.0的时候,还可以把文档标记为HTML,而我们也正是这样做的,否则把文档标记为XML没准真会把人*疯的。

为什么这么说呢?首先,把文档标记为XML后,Internet Explorer不能处理。当然,IE9是可以处理了?峙掠腥嘶峤“真是太可爱了”,他们到现在居然都没有忘了这件事。这艘船终于靠岸了!不过那时候,作为全球领先的浏览器,IE无法处理接收到的XML文档类型的文档,而规范又要求你以XML文档类型来发送文档,这不把人*疯才怪呢。

所以说XHTML 1.1有点脱离现实,而你不想把文档以XML格式发送给那些能够理解XML的浏览器,则是因为XML的错误处理模型。XML的语法,无论是属性小写,元素小写,还是始终要给属性值加引号,这些都没有问题,都很好,事实上我也喜欢这样做,但XML的错误处理模型却是这样的:解析器如果遇到错误,停止解析。规范里就是这么写的。如果你把XHTML 1.1标记为XML文档类型,假设你用Firefox打开这个文档,而文档中有一个和号(&)没有正确编码,就算整个页面中就这一处错误,你看到的也将是黄屏,浏览器死掉了。Firefox会说:“没戏了,页面中有一个错误,你看不到这个网页了。”根据XML规范,这样处理是正确的,对Firefox而言,遇到错误就停止解析,并且不呈现其他任何内容是严格按照XML规范做的。因为它不是HTML,HTML根本就没有错误处理模型,但根据XML规范,这样做没错。

这就是为什么你不会把文档标记为XML的另一个原因。接下来,新的版本是XHTML 2,大家注意后面没有日期,因为这个规范并没有完成。

现在就说说XHTML 2,我很愿意把问题说清楚,XHTML 2实际上真是一个非常非常好的规范,确实非常好……从理论的角度来说。我的意思是说,制定这个规范的人都是非常非常有头脑的。直说吧,领导制定这个规范的家伙是斯蒂芬·彭伯顿(Stephen Pemberton),他应该是本地人,是一个聪明过人的家伙。规范本身也很了不起,如果所有人都同意使用的话,也一定是一个非常好的格式。只不过,还不够实际。

首先,XHTML 2仍然使用XML错误处理模型,你必须保证以XML文档类型发送文档;这一点不言自明:没人愿意这样做。其次,XHTML 2有意不再向后兼容已有的HTML的各个版本。他们甚至曾经讨论过废除img元素,这对每天都在做Web开发的人来说确实有点疯了的味道。但我们知道,他们之所以这样做,理论上确实有充足的理由——使用object元素可能会更好。<$xue63fenye$><$lovfpfenye$>

因此,无论XHTML 2在理论上是多么完美的一种格式,但却从未有机会付诸实践。而之所以难以将其付诸实践,就是因为像你我这样的开发人员永远不会支持它,它不向后兼容。同样,浏览器厂商也不会,浏览器厂商必须要保证向后兼容。

为什么XHTML 1.1没有像XML那样得到真正广泛地应用,为什么XHTML 2从未落到实处?因为它违反了一条设计原理,这条设计原理就是著名的伯斯塔尔法则(Postel’s Law)。大家都知道:

<$xue63fenye$><$lovfpfenye$>

发送时要保守;接收时要开放。

没错,接收的时候要开放,而这也正是Web得以构建的基础?榔鞯娜吮匦氤ǹ鼗,接收所有发送给浏览器的东西,因为它们过去一直都在接收那些不够标准的东西,对不对?Web上的很多文档都不规范,但那正是Web发展的动力。从某种角度讲,Web走的正是一条混沌发展之路,虽然混沌,但却非常美丽诱人。在Web上,格式不规范的文档随处可见,但那又怎样呢?如果所有人都能够写出精准的XML,所有文档的格式都十分正确,那当然好了?墒,那不现实。现实是伯斯塔尔法则。

作为专业人士,在发送文档的时候,我们会尽量保守一些,尽量采用最佳实践,尽量确保文档格式良好。但从浏览器的角度说,它们必须以开放的姿态去接收任何文档。

有人可能会说XML有错误处理模型,XHTML 1.1和XHTML 2都使用该模型,但那个错误处理模型太苛刻了。它绝对不符合接收时开放这个法则,遇到一个错误就停止解析怎么能叫开放呢?我们只能说它与健壮性法则(也就是伯斯塔尔法则)是对立的。

HTML5

之后,就到了HTML5,但HTML5并不是由W3C直接制定的。故事的经过是这样的,到20世纪末的时候,还没有HTML工作组,W3C内部的一些人就开始琢磨了,“HTML也许还可以更长寿一点,只要我们对它稍加扩展就行了。只要把我们放在XHTML上的时间和精力拿出一部分来,就可以提升一下HTML中的表单,可以让HTML更接近编程语言,就可以让它更上一层楼。”

于是,在2004年W3C成员内部的一次研讨会上,当时Opera公司的代表伊恩·?松↖an Hickson)提出了一个扩展和改进HTML的建议。他建议新任务组可以跟XHTML 2并行,但是在已有HTML的基础上开展工作,目标是对HTML进行扩展。W3C投票表决的结果是——“反对”,因为HTML已经死了,XHTML 2才是未来的方向。然后,Opera、Apple等浏览器厂商,以及其他一些成员说:“那好吧,不指望他们了,我们自已一样可以做这件事,我们脱离W3C。”他们成立了Web Hypertext Applications Technology Working Group(Web超文本应用技术工作组,WHATWG)——可巧的是,他们自称工作组,而不是特别小组(task force),这就为HTML5将来的命运埋下了伏笔。

WHATWG决定完全脱离W3C,在HTML的基础上开展工作,向其中添加一些新东西。这个工作组的成员里有浏览器厂商,因此他们不仅可以说加就加,而且还能够一一实现。结果,大家不断提出一些好点子,并且逐一做到了浏览器中。

$网神分页符$

站长交易(http://jy.Xue163.com)友情链接交换 虚拟主机评测+IDC导航=net188.cn

这个要看你怎么去处理,比熊犬还是比较粘人的。这个如果出门在外,把狗狗留在寄养中心的话,这个就不建议养了狗狗养起来就跟我们小孩一样,感情非常的深,我自己养的泰迪宝宝,养了3年多了,一直都是去哪里都带着,去旅游也是自驾游,平日的话都是给最好的馋不腻*,加一些蔬菜水果这样。养狗了就要有舍有得要养的话,去旅游也要把狗狗带上,不然不建议养防采集。

<$xue63fenye$><$lovfpfenye$>

WHATWG的工作效率很高,不久就初见成效。在此期间,W3C的XHTML 2没有什么实质性的进展。特别是,如果从实现的角度来说,用原地踏步形容似乎也不为过。

结果,一件有意思的事情发生了。那是在2006年,蒂姆·伯纳斯-李写了一篇博客,说:“你们知道吗?我们错了。我们错在企图一夜之间就让Web跨入XML时代,我们的想法太不切实际了,是的,也许我们应该重新组建HTML工作组了。”善哉斯言,后来的故事情节果真就是这样发展的。W3C在2007年组建了HTML5工作组。这个工作组面临的第一个问题,毫无疑问就是“我们是从头开始做起呢,还是在2004年成立的那个叫WHATWG的工作组既有成果的基础上开始工作呢?”答案是显而易见的,他们当然希望从已经取得的成果着手,以之为基础展开工作。于是他们又投了一次票,同意“在WHATWG工作成果的基础上继续开展工作”。好了,这下他们要跟WHATWG并肩战斗了。

第二个问题就是如何理顺两个工作组之间的关系。W3C这个工作组的编辑应该由谁担任?是不是还让WHATWG的编辑,也就是现在Google的伊恩·?松醇嫒?于是他们又投了一次票,赞成“让伊恩·?松H蜽3C HTML5规范的编辑,同时兼任WHATWG的编辑,更有助于新工作组开展工作。”

这就是他们投票的结果,也就是我们今天看到的局面:一种格式,两个版本。WHATWG的网站上有这个规范,而W3C的站点上同样也有一份。

如果你不了解内情,很可能会产生这样的疑问:“哪个版本才是真正的规范?”当然,这两个版本内容是一样的……基本上相同。实际上,这两个版本将来还会分道扬镳。现在已经有了分道扬镳的迹象了。我的意思是说,W3C最终要制定一个具体的规范,这个规范会成为一个工作草案,定格在某个历史时刻。

而WHATWG呢,他们还在不断地迭代。即使目前我们说的HTML5,也不能完全涵盖WHATWG正在从事的工作。最准确的理解是他们正在开发一项简单的HTML或Web技术,因为这才是他们工作的核心目标。然而,同时存在两个这样的工作组,这两个工作组同时开发一个基本相同的规范,这无论如何也容易让人产生误解。误解就可能造成麻烦。

其实这两个工作组背后各自有各自的流程,因为它们的理念完全不同。在WHATWG,可以说是一种*的工作机制。我刚才说了,伊恩·?松潜嗉。他会听取各方意见,在所有成员各抒己见,充分陈述自己的观点之后,他批准自己认为正确的意见。

W3C则截然相反,可以说是一种民主的工作机制。所有成员都可以发表意见,而且每个人都有投票表决的权利。这个流程的关键在于投票表决。从表面上看,WHATWG的工作机制让人不好接受。岂止是不好接受,简直是历史的倒退。相信谁都会认为“运作任何项目都不能采取这种方式!”

W3C的工作机制听起来让人很舒服。至少体现了人人平等嘛。但在实践中,WHATWG的工作机制运行得非常非常好。我认为之所以会这样,主要归功于伊恩·?松。他的的确确是一个非常称职的编辑。他在听取各方意见时,始终可以做到丝毫不带个人感*彩。

从原理上讲,W3C的工作机制很公平,而实际上却非常容易在某些流程或环节上卡壳,造成工作停滞不前,一件事情要达成决议往往需要花费很长时间。那到底哪种工作机制最好呢?我认为,最好的工作机制是将二者结合起来。而事实也是两个规范制定主体在共同制定一份相同的规范,我想,这倒是非常有利于两种工作机制相互取长补短。<$xue63fenye$><$lovfpfenye$>

两个工作组之所以能够同心同德,主要原因是HTML5的设计思想。因为他们从一开始就确定了设计HTML5所要坚持的原则。结果,我们不仅看到了一份规范,也就是W3C站点上公布的那份文档,即HTML5语言规范,还在W3C站点上看到了另一份文档,也就是HTML设计原理。而这份文档的一位编辑今天也来到了我们大会的现场,她他就是安妮·奇泰丝(Anne Van Kesteren)。如果大家对这份文档有问题,可以请教安妮。

这份文档非常好,真的非常出色。这份文档,可以说见证了W3C与WHATWG同心协力共谋发展的历程。难道你们不觉得他们像是一对欢喜冤家吗?那他们还怎么同心同德呢?这份文档忠实地记录了他们一道做了什么,他们共同拥护什么。

接下来,我想要讲的就是这份文档。因为,既然他们能就这份文档达成共识,那么我相信,HTML5必将是一个伟大的规范,而他们已经认可这就是他们的共同行动纲领。为此,你才会看到诸如兼容性、实用性、互用性之类的概念。即便W3C与WHATWG之间再有多大的分歧——确实相当多——至少他们还有这份文档中记录的共识。这一点才是至关重要的。正因为他们有了共识,才有了这份基于共识描述设计原理的文档。

避免不必要的复杂性

下面我就给大家介绍一些这份文档中记载的设计原理。第一个,非常简单:避免不必要的复杂性。好像很简单吧。我用一个例子来说明。

假设我使用HTML 4.01规范,我打开文档,输入doctype。这里有人记得HTML 4.01的doctype吗?好,没有,我猜没有。除非……我的意思是说,你是傻冒。现场恐怕真有人背过,这就是HTML 4.01的doctype:

<$xue63fenye$><$lovfpfenye$>

<!DOCTYPE html PUBLIC "-//W3C/DTD HTML 4.01//EN"

"http://www.w3.org/TR/html4/strict.dtd">

我不记这个两行代码,不然还要记事本、要Google、要模板有什么用呢?

要是我使用XHTML 1.0呢,这个规范我都已经用了10年了。有谁记得住这个doctype吗?没错,它的长度跟HTML 4.01的差不太多:

<$xue63fenye$><$lovfpfenye$>

<!DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

是不是,基本上相同。它要告诉浏览器的是:这个文档是XHTML 1.0的文档。那么在HTML 5中,省掉不必要的复杂性,doctype就简化成了:

<$xue63fenye$><$lovfpfenye$>

<!DOCTYPE html>

仅此而已。好了,就连我也能过目不忘了。我用不着把这几个字符记在记事本里了。我得说,在我第一次看到这个doctype的时候——我当然以为这是一个HTML文档的doctype——被它吓了一跳:“是不是还少一个数字5?”我心里想:“这个doctype想告诉浏览器什么呢?就说这个文档是HTML吗?难道这是有史以来唯一一个HTML版本吗,这件事我得首先搞清楚,HTML今后永远不会再有新版本了吗?”好一副唯我独尊的架式!我错了,因为这个doctype并没有这个意思。为此,必须先搞清楚为什么文档一开头就要写doctype。它不是写给浏览器看的。Doctype是写给验证器看的。也就是说,我之所以要在文档一开头写那行XHTML 1.0的doctype,是为了告诉验证器,让验证器按照该doctype来验证我的文档。<$xue63fenye$><$lovfpfenye$>

$网神分页符$

站长交易(http://jy.Xue163.com)友情链接交换 虚拟主机评测+IDC导航=net188.cn

这个要看你怎么去处理,比熊犬还是比较粘人的。这个如果出门在外,把狗狗留在寄养中心的话,这个就不建议养了狗狗养起来就跟我们小孩一样,感情非常的深,我自己养的泰迪宝宝,养了3年多了,一直都是去哪里都带着,去旅游也是自驾游,平日的话都是给最好的馋不腻*,加一些蔬菜水果这样。养狗了就要有舍有得要养的话,去旅游也要把狗狗带上,不然不建议养防采集。

<$xue63fenye$><$lovfpfenye$>

浏览器反倒无所谓了。假设我写的是HTML 3.2文档,文档开头写的是HTML 3.2的doctype。而在文档中某个地方,我使用了HTML 4.01中才出现的一个元素。浏览器会怎么处理这种情况?它会因为这个元素出现在比doctype声明的HTML版本更晚的规范中,就不解释呈现该元素吗?不会,当然不会!它照样会解释呈现该元素,别忘了伯斯塔尔法则,别忘了健壮性。浏览器在接收的时候必须要开放。因此,它不会检查任何格式类型,而验证器会,验证器才关心格式类型。这才是存在doctype的真正原因。

而按照HTML5的另一个设计原理,它必须向前向后兼容,兼容未来的HTML版本——不管是HTML6、HTML7,还是其他什么——都要与当前的HTML版本,HTML5,兼容。因此,把一个版本号放在doctype里面没有多大的意义,即使对验器证也一样。

刚才,我说doctype不是为浏览器写的,这样说大多数情况下没有问题。在有一种情况下,你使用的doctype会影响到浏览器,相信在座诸位也都知道。但在这种情况下,Doctype并非真正用得其所,而只是为了达到某种特殊的目的才使用doctype。当初微软在引入CSS的时候,走在了标准的前头,他们率先在浏览器中支持CSS,也推出了自己的盒模型——后来标准发布了,但标准中使用了不一样的盒模型。他们怎么办?他们想支持标准,但也想向后兼容自己过去推出的编码方式。他们怎么知道网页作者想使用标准,还是想使用他们过去的方式?

于是,他们想出了一个非常巧妙的主意。那就是利用doctype,利用有效的doctype来触发标准模式,而不是兼容模型(quiks mode)。这个主意非常巧妙。我们今天也都是这样在做,在我们向文档中加入doctype时,就相当于声明了“我想使用标准模式”,但这并不是发明doctype的本意。这只是为了达到特殊的目的在利用doctype。

下面我出一道有奖抢答题,听好:“一分钟后开始,如果你手快的话,第一个在文档前面写完doctype html,然后我用Internet Explorer打开你的文档,会触发它的标准模式,还是会触发它的兼容模式?”

答案是,这是在Internet Explorer中触发标准模式的最少字符数目。我认为这也说明了HTML5规范的本质:它不追求理论上的完美。HTML5所体现的不是“噢,给作者一个简短好记的doctype不好吗?”,没错,简短好记是很好,但如果这个好记的doctype无法适应现有的浏览器,还不如把它忘了更好。因此,这个平衡把握得非常好,不仅理论上看是个好主意——简短好记的doctype,而且实践中同样也是个好主意——仍然可以触发标准模式。应该说,Doctype是一个非常典型的例子。

还有一个例子,同样可以说明规范是如何省略不必要的复杂性,避免不必要的复杂性的。如果前面的文档使用的是HTML 4.01,假设我要指定文档的字符编码。理想的方式,是通过服务器在头部信息中发送字符编码,不过也可以在文档这个级别上指定:

<$xue63fenye$><$lovfpfenye$>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<$xue63fenye$><$lovfpfenye$>

同样,我也不会把这行代码背下来。我还想省下自己的脑细胞去记点别的更有价值的东西呢。不过,如果我想指定文档使用UTF-8编码,只能添加这行代码。这是在HTML 4.01中需要这样做。要是你在XHTML 1.0指定同样的编码,就得多敲一下键盘,因为你还得声明meta元素位于一个开始的XML标签中。

<$xue63fenye$><$lovfpfenye$>

<?xml version="1.0" encoding="UTF-8" ?>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

在HTML5中,你要敲的字符只有:

<$xue63fenye$><$lovfpfenye$>

<meta charset="utf-8">

简短好记。我能背下来。

同样,这样写也是有效的。它不仅适用于最新版本的浏览器,只要是今天还有人在用的浏览器都同样有效。为什么?因为在我们把这些meta元素输入浏览器时,浏览器会这样解释它:“元数据(meta)点点点点点,字符集(charset)utf-8。”这就是浏览器在解释那行字符串时真正看到的内容。它必须看到这些内容,根据就是伯斯塔尔法则,对不对?

我多次提到健壮性原理,但总有人不理解。我们换一种说法,浏览器会想“好,我觉得作者是想要指定一个字符集……看,没错,utf-8。”这些都是规范里明文规定的。如今,不仅那个斜杠可以省了,而且总共只要写meta charset=”utf-8″就行了。

关于省略不必要的复杂性,或者说避免不必要的复杂性的例子还有不少。但关键是既能避免不必要的复杂性,还不会妨碍在现有浏览器中使用。比如说,在HTML5中,如果我使用link元素链接到一个样式表,我说了rel=”stylesheet”,然后再说type=”text/css”,那就是重复自己了。对浏览器而言,我就是在重复自己。浏览器用不着同时看到这两个属性。浏览器只要看到rel=”stylesheet”就够了,因为它可以猜出来你要链接的是一个CSS样式表。所以就不用再指定type属性了。你不是已经说了这是一个样式表了嘛;不用再说第二次了。当然,愿意的话,你可以再说;如果你想包含type属性,请便。

同样地,如果你使用了script元素,你说type=”text/javascript”,浏览器差不多就知道是怎么回事了。对Web开发而言,你还使用其他的脚本语言吗?如果你真想用其他脚本语言,没人会阻拦你。但我要奉劝你一句,任何浏览器都不会支持你。

愿意的话,你可以添加一个type属性。不过,也可以什么都不写,浏览器自然会假设你在使用JavaScript。避免-不必要的-复杂性。

支持已有的内容

支持已有的内容。这一点非常重要,因为很多人都认为HTML5很新,很闪亮;它应该代表着未来发展的方向,应该把Web推向一个新的发展阶段。这就是HTML5,对吗?显然,我们都会考虑让Web的未来发展得更好,但他们则必须考虑过去。别忘了W3C这个工作组中有很多人代表的是浏览器厂商,他们肯定是要考虑支持已有内容的。只要你想构建一款浏览器,就必须记住这个原则:必须支持已有的内容。<$xue63fenye$><$lovfpfenye$>

下面我们就来看一个HTML5支持已有内容的例子。

这个例子展示了编写同样内容的四种不同方式。上面是一个img元素,下面是带一个属性的段落元素。四种写法唯一的不同点就是语法。把其中任何一段代码交给浏览器,浏览器都会生成相同的DOM树,没有任何问题。从浏览器的角度看,这四种写法没有区别。因而在HTML5中,你可以随意使用下列任何语法。

<$xue63fenye$><$lovfpfenye$>

<img src="foo" alt="bar" />

<p class="foo">Hello world</p>

<img src="foo" alt="bar">

<p class="foo">Hello world

<IMG SRC="foo" ALT="bar">

<P CLASS="foo">Hello world</P>

<img src=foo alt=bar>

<p class=foo>Hello world</p>

好了,看到这几段代码,恐怕有人会说“不对不对不对。其中只有一个是对的,另外三个——说不好。”不对,应该给属性值加引号!拜托,我们可是一直都给属性值加引号的!元素名大写对吗?这种做法10年不是就被抛弃了吗?

看到HTML5同时允许这些写法,我心里忍不住一阵阵想吐。我写了10年的XHTML 1.0,已经非常适应严格的语法了。但你必须明白,站在浏览器的角度上,这些写法实际上都是一样的。确实没有什么问题。

还有谁也感到不舒服了吗?有谁看到这些之后想“噢,这不是乱写嘛,这样做不对”?只有我这样想吗?还有别人吗?

但是,HTML5必须支持已经存在的内容,而已有的内容就是这个样子的。不是吗?根据伯斯塔尔法则,浏览器没有别的选择。

有人可能会说“这样不行。我觉得语言本身应该提供一种开关,让作者能够表明自己想做什么。”比如说,想使用某种特定的语法,像XHTML,而不是使用其他语法。我理解这些人的想法。但我不赞成在语言里设置开关。因为我们讨论的只是编码风格或者写作风格,跟哪种语法正确无关。对于像我们这样的专业人士,我认为可以使用lint工具(一种软件质量保证工具,或者说是一种更加严格的编译器。它不仅可以象普通编译器那样检查出一般的语法错误,还可以检查出那些虽然完全合乎语法要求,但很可能是潜在的、不易发现的错误),对其他技术我们不是也在使用lint工具嘛。

比如说对JavaScript使用lint工具。JavaScript同样也是比较混乱、不严谨的例子,但它非常强大,原因恰恰是它混乱、不严谨,而且有很多不同的编码方式。在JavaScript,你可以在每条语句末尾加上分号,但不是必需的,因为JavaScript会自动插入分号……是不是听起来有点不好接受?

正因为如此,才有了像JSlint这样的工具,在道格拉斯·克劳克福德(Douglas Crockford)的网站jslint.org上面。有个网页上写着“JSlint可能会伤害你的感情。”但这确实是个非常棒的工具,它可以把JavaScript代码变得完美无瑕。如果你通过JSlint运行JavaScript,它会告诉你“好,你的JavaScript代码有效,但写法不妥。你这种编码风格啊,我不喜欢。不赞成你这样写。这样写不好。”特别是对团队,对于要使用统一的编码风格的团队,JSlint是非常方便的工具。<$xue63fenye$><$lovfpfenye$>

$网神分页符$

站长交易(http://jy.Xue163.com)友情链接交换 虚拟主机评测+IDC导航=net188.cn

这个要看你怎么去处理,比熊犬还是比较粘人的。这个如果出门在外,把狗狗留在寄养中心的话,这个就不建议养了狗狗养起来就跟我们小孩一样,感情非常的深,我自己养的泰迪宝宝,养了3年多了,一直都是去哪里都带着,去旅游也是自驾游,平日的话都是给最好的馋不腻*,加一些蔬菜水果这样。养狗了就要有舍有得要养的话,去旅游也要把狗狗带上,不然不建议养防采集。

<$xue63fenye$><$lovfpfenye$>

我个人认为,不仅对团队来说,就算是你自己写代码,也要坚持一种语法风格。从浏览器解析的角度讲,不存在哪种语法比另一种更好的问题,但我认为,作为专业人士,我们必须能够自信地讲“这就是我的编码风格。”然而,我不认为语言里应该内置这种开关。你可以使用lint工具来统一编码风格。现在就来说说lint工具。大家可以登录htmllint.com,在其中运行你的HTML5文档,它会帮你检查属性值是否加了引号,元素是否小写,你还可以通过勾选复选框来设置其他检查项。

但这不意味着拒绝粗心大意的标记,做不做清理完全取决于你自己。我说过,因为浏览器必须支持已有的内容,HTML5自然也不能例外。归根结底还是伯斯塔尔法则。我们始终离不开伯斯塔尔法则。

解决现实的问题

HTML5的另一个设计原理是解决现实的问题。显而易见的是,解决各种问题的格式和规范已经比比皆是了,因此在我看来,这个原理其实是要解决理论问题,而非解决现实的问题。这条设计原理是要从理论上承认人们普遍存在的问题,消除敏感问题。

下面我来举个例子。相信这个例子有不少人都遇到过。假设我使用HTML 4或XHTML 1,页面中已经有了一块内容,我想给整块内容加个链接,怎么办?问题是这块内容里包含一个标题,一个段落,也许还有一张图片。如果我想给它们全部都可以点击,必须使用3个链接元素。于是,我得先把光标放在标题(比如说h2元素)中,写一个链接标签,然后再选中所有要包含到链接里面来的文本。接着,再把光标放在段落里,写一个链接标签,然后把段落中的文本放在链接里……

<$xue63fenye$><$lovfpfenye$>

<h2><a href="/path/to/resource">Headline text</a></h2>

<p><a href="/path/to/resource">Paragraph text.</a></p>

在HTML5中,我只要简单地把所有内容都包装在一个链接元素中就行了。

<$xue63fenye$><$lovfpfenye$>

<a href="/path/to/resource">

<h2>Headline text</h2>

<p>Paragraph text.</p>

</a>

没错,链接包含的都是块级元素,但现在我可以用一个元素包含它们。这样太好了。因为我碰到过类似的情形,必须给几个块级元素加上相同的链接,所有能这样写就太好了。为此,我就非;队璈TML5这个新标准。

它解决了一个现实的问题。我敢说在座不少朋友都曾遇到过这个问题。

那这到底解决的是什么问题呢?浏览器不必因此重新写代码来支持这种写法。这种写法其实早就已经存在于浏览器中了,因为早就有人这样写了,当然以前这样写是不合乎规范的。所以,说HTML5解决现实的问题,其本质还是“你都这样写了很多年了吧?现在我们把标准改了,允许你这样写了。”

求真务实

在所有设计原理中,这一条恐怕是最响亮的了——求真务实。不知道大家有没有在公司里开会时听到过这种口号:“开拓进取,求真务实。”实际上,除了作为企业的口号,它还是一条非常重要的设计原理,因为求真务实对于HTML的含义是:在解决那些令人头痛的问题之前,先看看人们为应对这些问题都想出了哪些办法。集中精力去理解这些“民间的”解决方案才是当务之急。<$xue63fenye$><$lovfpfenye$>

HTML5中新的语义元素就是遵循求真务实原理的反映。新增的元素不算多,谈不上无限的扩展性,但却不失为一件好事。尽管数量屈指可数,但意义却非同一般。这些新元素涉及头部(header)、脚部(footer)、分区(section)、文章(article)……,相信大家都不会觉得陌生。我的意思是说,即便你不使用HTML5,也应该熟悉这些称呼,这些都是你曾经使用过的类名,比如class=”header”/“head”/“heading”,或class=”footer”/“foot”。当然,也可能是ID,id=”header”,id=”footer”。这些不都是我们已经司空见惯了的嘛。

好,举个例子吧,假设你今天写了下面这个文档。

<$xue63fenye$><$lovfpfenye$>

<body>

<div id="header">...</div>

<div id="navigation">...</div>

<div id="main">...</div>

<div id="sidebar">...</div>

<div id="footer">...</div>

</body>

这里有一个div使用了id=”header”,另一个div使用了id=”navigation”,……。怎么样,都轻车熟路了吧?在HTML5中,这些元素都可以换掉。说起新增的语义元素,它们价值的一方面可以这样来体现:“嘿,看啊,这样多好,用HTML5新增的元素可以把这些div都替换掉。”

<$xue63fenye$><$lovfpfenye$>

<body>

<header>...</header>

<nav>...</nav>

<div id="main">...</div>

<aside>...</aside>

<footer>...</footer>

</body>

当然了,你可以这样做。在文档级别上使用这些元素没有问题。但是,假如新增这些元素的目的仅仅是为了取代原来的div,那就真有点多此一举了。

$网神分页符$

站长交易(http://jy.Xue163.com)友情链接交换 虚拟主机评测+IDC导航=net188.cn

这个要看你怎么去处理,比熊犬还是比较粘人的。这个如果出门在外,把狗狗留在寄养中心的话,这个就不建议养了狗狗养起来就跟我们小孩一样,感情非常的深,我自己养的泰迪宝宝,养了3年多了,一直都是去哪里都带着,去旅游也是自驾游,平日的话都是给最好的馋不腻*,加一些蔬菜水果这样。养狗了就要有舍有得要养的话,去旅游也要把狗狗带上,不然不建议养防采集。

<$xue63fenye$><$lovfpfenye$>

虽然在这个文档中,我们用这些新元素来替换的是ID,但在我个人看来,将它们作为类的替代品更有价值。为什么这么说呢?因为这些元素在一个页面中不止可以使用一次,而是可以使用多次。没错,你可以为文档添加一个头部(header),再添加一个脚部(footer);但文档中的每个分区(section)照样也都可以有一个头部和一个脚部。而每个分区里还可以嵌套另一个分区,被嵌套的分区仍然可以有自己的头部和脚部,是这样吧?<$xue63fenye$><$lovfpfenye$>

这四个新元素:section、article、aside和nav,之所以说它们强大,原因在于它们代表了一种新的内容模型,一种HTML中前所未有的内容模型——给内容分区。迄今为止,我们一直都在用div来组织页面中的内容,但与其他类似的元素一样,div本身并没有语义。但section、article、aside和nav实际上是在明确地告诉你——这一块就像文档中的另一个文档一样。位于这些元素中的任何内容,都可以拥有自己的概要、标题,自己的脚部。

其中最为通用的section,可以说是与内容最相关的一个。而article则是一种特殊的section。Aside呢,是一种特殊的section。最后,Nav也是一种特殊的section。

好,即便是现在,你照样可以使用div和类来描述页面中不同的部分,就像下面这样:

<$xue63fenye$><$lovfpfenye$>

<div class="item">

<h2>...</h2>

<div class="meta">...</div>

<div class="content">

...

</div>

<div class="links">...</div>

</div>

其中包含可能是有关内容作者的元数据,而下面会给出一些链接,差不多就这样。在HTML5中,我完全可以说这块内容就是一个文档,通过对内容分区,使用section或article或aside,我可以说“这一块完全是可以独立存在的。”因此,我当然可以使用header和footer。

<$xue63fenye$><$lovfpfenye$>

<section class="item">

<header><h1>...</h1></header>

<footer class="meta">...</footer>

<div class="content">

...

</div>

<nav class="links">...</nav>

</section>

请注意,即便是footer,也不一定非要出现在下面,不是吗?这几个元素,header、footer、aside、nav,最重要的是它们的语义;跟位置没有关系。一想到footer这个词,我们总会不由自主地想,“噢,应该放在下面。”同样,我们把aside想象成一个侧边栏?墒,如果你看一看规范,就会发现这些元素只跟内容有关。因此,放在footer中的内容也可以是署名,文章作者之类的,它只是你使用的一个元素。这个元素并没有说“必须把我放在文档或者分区的下面。”

这里,请注意,最重要的还不是我用几个新元素替换了原来的div加类,而是我把原来的H2换成了H1——震撼吧,我看到有人发抖了。我碰到过不少职业的Web开发人员,多年来他们一直认为规范里说一个文档中只能有一个H1;褂幸恍┳在嘉蚰艿腟EO秘诀同样说要这样。很多SEO的技巧其实是很教条的。所谓教条,意思就是不相信数据。过去,这种教条表现为“不行,页面中包含两个以上的H1,你就会死掉的。”在HTML5中,只要你建立一个新的内容块,不管用section、article、aside、nav,还是别的元素,都可以在其中使用H1,而不必担心这个块里的标题在整个页面中应该排在什么级别;H2、H3,都没有问题。<$xue63fenye$><$lovfpfenye$>

这个变化太厉害了。想一想吧,这个变化对内容管理是*性的。因为现在,你可以把每个内容分区想象一个独立的、能够从页面中拿出来的部分。此时,根据上下文不同,这个独立部分中的H1,在整个页面中没准会扮演H2或H3的角色——取决于它在文档中出现的位置。面对这个突如其来的变化,也许有人的脑子会暂时转不过弯来。不要紧,但我可以告诉你,我认为这才是HTML5中这些新语义标记的真正价值所在;痪浠八,我们现在有了独立的元素了,这些元素中的标题级别可以重新定义。

我的文档中可能会包含一个分区,这个分区中可能会嵌套另一个分区,或者一篇文章,然后文章再嵌套分区,分区再嵌套文章、嵌套分区,文章再嵌套文章。而且每个分区和文章都可以拥有自己的H1到H6。从这个意义上讲,H元素真可谓“子子孙孙,无穷匮也”了。但是,在你在编写内容或者内容管理系统的时候,它们又都是独立的,完全独立的内容块。这才是真正的价值所在。

实际上,这个点子并不HTML5工作组拍脑门想出来的,也不是W3C最近才提出来的。下面这几句话摘自蒂姆·伯纳斯-李1991年的一封邮件,邮件是发给丹·康纳利(Dan Connolly)的。他在邮件中解释了对HTML的理解,他说:“你知道……知道我的想法,我认为H1、H2这样单调地排下去不好,我希望它成为一种可以嵌套的元素,或者说一个通用的H元素,我们可以在其中嵌套不同的层次。”但后来,我们没有看到通用的H元素,而是一直在使用H1和H2——那是因为我们一直在支持已有的内容。20年后的今天,这个理想终于实现了。

平稳退化

下一条原理大家应该都很熟悉了,那就是平稳退化。毕竟,我们已经遵守这条规则好多年了。渐进增强的另一面就是平稳退化。

有关HTML5遵循这条原理的例子,就是使用type属性增强表单。下面列出了可以为type属性指定的新值,有number、search、range,等等。

<$xue63fenye$><$lovfpfenye$>

input type="number"

input type="search"

input type="range"

input type="email"

input type="date"

input type="url"

最关键的问题在于浏览器在看到这些新type值时会如何处理。现有的浏览器,不是将来的浏览器,现有的浏览器是无法理解这些新type值的。但在它们看到自己不理解的type值时,会将type的值解释为text。

无论你写的是input type=”foo”还是input type=”bar”,现有的任何浏览器都会说:“嗯,也许作者的意思是text。”因而,你从现在开始就可以使用这些新值,而且你也可以放心,那些不理解它们的浏览器会把新值看成type=”text”,而这真是一个浏览器实践平稳退化原理的好例子。

比如说,你现在输入了type=”number”。假设你需要一个输入数值的文本框。那么你可以把这个input的type属性设置为number,然后理解它的浏览器就会呈现一个可爱的小控件,像带小箭头图标的微调控件之类的。对吧?而在不理解它的浏览器中,你会看到一个文本框,一个你再熟悉不过的文本框。既然如此,为什么不能说输入type=”number”就会得到一个带小箭头图标的微调控件呢?<$xue63fenye$><$lovfpfenye$>

当然,你还可以设置最小和最大值属性,它们同样可以平稳退化。这是问题的关键。

再看input type=”search”。你也可以考虑一下这种输入框,因为这种输入框在Safari中会被呈现为一个系统级的搜索控件,右边还有一个点击即可清除搜索关键词的X。而在其他浏览器中,你得到的则是一个文本框,就像你写的是input type=”text”一样,也就是你已经非常熟悉的文本框。那为什么还不使用input type=”search”呢?它不会有什么副作用,没有,对不对?

HTML5还为输入元素增加了新的属性,比如placeholder(占位符)。有人不知道这个属性的用处吗,没有吧?没错,就是用于在文本框中预先放一些文本。不对,不是标签(label)——占位符和标签完全不是一回事。占位符就是文本框可以接受的示例内容,一般颜色是灰色的。只要你一点击文本框,它就消失了。如果你把已经输入的内容全部删除,然后单击了文本框外部,它又会出现。

使用JavaScript编写一些代码当然也可以实现这个功能,但HTML5只用一个placeholder属性就帮我们解决了问题。

当然,对于不支持这个属性的浏览器,你还是可以使用JavaScript来实现占位符功能。通过JavaScript来测试浏览器支不支持该属性也非常简单。如果支持,后退一步,把路让开,乐享其成即可。如果不支持,可以再让你的JavaScript来模拟这个功能。

现在,我不得不提到另一个话题了:HTML5对Flash。也许你早听说过了,或者在哪里看到了这方面的讨论。说实话,我一点也不明白。我搞不懂人们怎么会仅仅凭自己的推测来展开争论。

首先,他们所说的HTML5对Flash,并不是指的HTML5,也不是指的Flash。而是指HTML5的一个子集和Flash的一个子集。具体来说,他们指的是视频。因此,不管你在哪里听到别人说“HTML5对Flash”,那很可能说的只是HTML5视频对Flash视频。

其次,一说HTML5对Flash,就好像你必须得作出选择一样:你站在哪一边?实际上不是这样的。HTML5规范的设计能够让你做到鱼和熊掌兼得。

$网神分页符$

站长交易(http://jy.Xue163.com)友情链接交换 虚拟主机评测+IDC导航=net188.cn

这个要看你怎么去处理,比熊犬还是比较粘人的。这个如果出门在外,把狗狗留在寄养中心的话,这个就不建议养了狗狗养起来就跟我们小孩一样,感情非常的深,我自己养的泰迪宝宝,养了3年多了,一直都是去哪里都带着,去旅游也是自驾游,平日的话都是给最好的馋不腻*,加一些蔬菜水果这样。养狗了就要有舍有得要养的话,去旅游也要把狗狗带上,不然不建议养防采集。

<$xue63fenye$><$lovfpfenye$>

好,下面就来看看这个新的video元素;真是非常贴心的一个元素,而且设计又简单,又实用。一个开始的video元素,加一个结束的video元素,中间可以放后备内容。注意,是后备内容,不是保证可访问性的内容,是后备内容。下面就是针对不支持video元素的浏览器写的代码:

<$xue63fenye$><$lovfpfenye$>

<video src="movie.mp4">

<!-- 后备内容 -->

</video>

<$xue63fenye$><$lovfpfenye$>

那么,在后备内容里面放些什么东西呢?好,你可以放Flash影片。这样,HTML5的视频与Flash的视频就可以协同起来了。你不用作出选择。

<$xue63fenye$><$lovfpfenye$>

<video src="movie.mp4">

<object data="movie.swf">

<!-- 后备内容 -->

</object>

</video>

<$xue63fenye$><$lovfpfenye$>

当然,你的代码实际上并没有这么简单。因为这里我使用了H264,部分浏览器支持这种视频格式。但有的浏览器不支持。

对不起,请不要跟我谈视频格式,我一听就心烦。不是因为技术。技术倒无所谓,关键是会牵扯到一大堆专利还有律师、知识产权等等,这些都是Web的天敌,对我建网站一点好处都没有。

可你实际上要做的,仅仅就是把后备内容放在那而已,后备内容可以包含多种视频格式。如果愿意怕话,可以使用source元素而非src属性来指定不同的视频格式。

<$xue63fenye$><$lovfpfenye$>

<video>

<source src="movie.mp4">

<source src="movie.ogv">

<object data="movie.swf">

<a href="movie.mp4">download</a>

</object>

</video>

<$xue63fenye$><$lovfpfenye$>

上面的代码中包含了4个不同的层次。

1、如果浏览器支持video元素,也支持H264,没什么好说的,用第一个视频。

2、如果浏览器支持video元素,支持Ogg,那么用第二个视频。

3、如果浏览器不支持video元素,那么就要试试Flash影片了。

4、如果浏览器不支持video元素,也不支持Flash,我还给出了下载链接。

不错,一开始就能考虑这么周到很难得啊。有了这几个层次,已经够完善了。

总之,我是建议你各种技术要兼顾,无论是HTML5,还是Flash,一个也不能少。如果只使用video元素提供视频,难免搬起石头砸自己的脚,我个人认为。而如果只提供Flash影片,情况也好不到哪去,性质是一样的。所以还是应该两者兼顾。

为什么要兼顾这两种技术呢?假设你需要面向某些不支持Flash的手持设备——只是举个例子——提供视频,你当然希望手持设备的用户能够看到视频了,不是吗?

至于为什么要使用不同的格式,为什么Flash视频和音频如此成功,我想可以归结为另一个设计原理,即梅特卡夫定律(Metcalfe’s Law):

<$xue63fenye$><$lovfpfenye$>

网络价值同网络用户数量的平方成正比。

梅特卡夫的这个定律虽然是针对电话网提出来的,但在很多领域里也是适用的。使用网络的用户越多,网络的价值也就越大。人人都上Facebook,还不是因为人人都上Facebook嘛。虽然Facebook真正的价值不在于此,但只有人人都上才会让它的变得如此有价值。

梅特卡夫定律也适用于传真机。如果只有一个人购买了传真机,当然没有什么用处。但如果其他人也陆续购买了传真机,那么他的投资会就得到回报。

当然,面对竞争性的视频格式和不同的编码方式,你感觉不到梅特卡夫定律的作用,我也很讨厌以不同的方式来编码视频,但只向浏览器发送用一种方式编码的视频是行不通的。而这也正是Flash在视频/音频领域如此成功的原因。你只要把Flash影片发送给浏览器就好了,然后安装了插件的浏览器都能正常播放。本质上讲,Flash利用了梅特卡夫定律。

最终用户优先

今天我要讲的最后一个设计原理,也是我个人最推崇的一个,但没有要展示的代码示例。这个原理更有哲学的味道,即最终用户优先。<$xue63fenye$><$lovfpfenye$>

$网神分页符$

站长交易(http://jy.Xue163.com)友情链接交换 虚拟主机评测+IDC导航=net188.cn

这个要看你怎么去处理,比熊犬还是比较粘人的。这个如果出门在外,把狗狗留在寄养中心的话,这个就不建议养了狗狗养起来就跟我们小孩一样,感情非常的深,我自己养的泰迪宝宝,养了3年多了,一直都是去哪里都带着,去旅游也是自驾游,平日的话都是给最好的馋不腻*,加一些蔬菜水果这样。养狗了就要有舍有得要养的话,去旅游也要把狗狗带上,不然不建议养防采集。

<$xue63fenye$><$lovfpfenye$>

这个设计原理本质上是一种解决冲突的机制;痪浠八,当你面临一个要解决的问题时,如果W3C给出了一种解决方案,而WHATWG给出了另一种解决方案,一个人这么想,另一个人那么想……这时候,有人站出来说:“对这个问题我们这样来解决。”

<$xue63fenye$><$lovfpfenye$>

一旦遇到冲突,最终用户优先,其次是作者,其次是实现者,其次标准制定者,最后才是理论上的完满。

理论上的完满,大致是指尽可能创建出最完美的格式。标准制定者,指的是工作组、W3C,等等。实现者,指的是浏览器厂商。作者,就是我们这些开发人员,对吧?看看我们在这个链条里面的位置多靠上!我们的地位仅次于最终用户——事情本来就该这个样子。用户是第一位的。而我们的声音在标准制定过程中也同样非常非常重要。

Hixie(即Ian Hickson, Acid2、Acid3的作者及维护者,HTML5、CSS 2.1规范的制定者)经常说,在有人建议了某个特性,而HTML5工作组为此争论不下时,如果有浏览器厂商说“我们不会支持这个特性,不会在我们的浏览器中实现这个特性”,那么这个特性就不会写进规范。因为即使是把特性写进规范,如果没有厂商实现,规范不过是一纸空文,对不对?实现者可以拒绝实现规范。

而根据最终用户优先的原理,我们在链条中的位置高于实现者,假如我们发现了规范中的某些地方有问题,我们想“这样规定我们不能同意,我们不支持实现这个特性”,那么就等于把相应的特性给否定了,规范里就得删除,因为我们的声音具有更高的权重。我觉得这样挺好!本质上是我们拥有了更大的发言权,对吧?我认为开发人员就应该拥有更多的发言权。

我觉得这应该是最重要的一条设计原理了,因为它承认了你的权利,无论是设计一种格式,还是设计软件,这条原理保证了你的发言权。而这条原理也正道出了事物运行的本质。难道还不够明显吗?用户的权利大于作者,作者的权利大于实现者,实现者的权利大于标准制定者。然而,反观其他规范,比如XHTML2,你就会发现完全相反的做法。把追求理论的完满放在第一位,而把用户——需要忍受严格错误处理带来的各种麻烦的用户——放在了链条的最底端。我并没有说这种做法就是错误的,但我认为这是一种完全不同的思维方式。

因此,我认为无论你做什么,不管是构建像HTML5这样的格式,还是构建一个网站,亦或一个内容管理系统,明确你的设计原理都至关重要。

<$xue63fenye$><$lovfpfenye$>

软件,就像所有技术一样,具有天然的*性。代码必然会反映作者的选择、偏见和期望。

下面我们讲一个例子。Drupal社区曾联系马克·博尔顿(Mark Boulton)和丽莎·雷贺特(Leisa Reichilt)设计Drupal的界面。他们计划遵循一些设计原理。为此,他们并没有纸上谈兵,而是经过了一段时间的思考和酝酿,提出指导将来工作的4个设计原理:

<$xue63fenye$><$lovfpfenye$>

简化最常见的任务,让不常见的任务不至于太麻烦。 <$xue63fenye$><$lovfpfenye$>

只为80%设计。

给内容创建者最大的权利。

默认设置智能化。

实际上,我在跟马克谈到这个问题时,马克说主要还是那两个,即“只为80%设计。给内容创建者最大的权利。”这就很不错了,至少它表明了立场,“我们认为内容创建者比这个项目中的任何人都重要。”在制定设计原理时,很多人花了很多时间都抓不住重点,因为他们想取悦所有人。关键在于我们不是要取悦所有人,而是要明确哪些人最重要。他们认为内容创建者是最重要的。

另一条设计原理,只为80%设计,其实是一条常见的设计原理,也是一种通用模式,即帕累托原理(Pareto principle)。

帕累托是意大利经济学家,他提出这个比例,80/20,说的是世界上20%的人口拥有80%的财富。这个比例又暗合了自然界各个领域的幂律分布现象。总之,无论你是编写软件,还是制造什么东西,都是一样的,即20%的努力可以触及80%的用例。最后20%的用例则需要付出80%甚至更多的努力。因此,有时候据此确定只为80%设计是很合理的,因为我们知道为此只要付出20%的努力即可。

再比如,微格式同样也利用了帕累托原理,只处理常见用例,而没有考虑少数情形。他们知道自己不会让所有人都满意;而他们的目标也不是让所有人都满意。他们遵循的设计原理很多,也都非常有价值,但最吸引人的莫过于下面这条了:

<$xue63fenye$><$lovfpfenye$>

首先为人类设计,其次为机器设计。

同样,你我都会觉得这是一条再明显不过的道理,但现实中仍然有不少例子违反了这条原理:容易让机器理解(解析)比容易让用户理解更重要。

所以,我认为平常多看一看别人推崇的设计原理,有助于做好自己手头的工作。你可以把自己认为有道理的设计原理贴在墙上。当然,你可以维护一个URL,把自己认为有价值的设计原理分享出来,就像Mozilla基金会那样,对不对,以下是Mozilla的设计原理:

<$xue63fenye$><$lovfpfenye$>

Internet作为一种公共资源,其运作效率取决于互通性(协议、数据格式、内容)、变革及全球范围内的协作。

基于透明社区的流程有助于增进协作、义务和信任。

我觉得像这样的设计原理都非常好。而有了设计原理,我认为才更有希望设计出真正有价值的产品。设计原理是Web发展背后的驱动力,也是通过HTML5反映出来的某种思维方式。我想,下面这条原理你绝对不会陌生:

<$xue63fenye$><$lovfpfenye$>

大多数人的意见和运行的代码。[1]

对不对?这句话经常在我脑际回响,它囊括了Web的真谛,触及了HTML5的灵魂。

也许我该把这条原理打印出来贴到办公室的墙上,让它时刻提醒我,这就是Web的设计原理:大多数人的意见和运行的代码。

我想,今天的演讲就到这里了。如果大家有什么想法可以在twitter上通过@adactio找到我。有时候我也会在自己的博客,adactio.com上写写有关这个主题的文章。最后,可能还要顺便给我自己做个广告,我刚出了一本书,希望大家关注。

非常感谢大家。[全文完]

原文地址:http://www.cn-cuckoo.com/2010/10/21/the-design-of-html5-2151.html <$xue63fenye$><$lovfpfenye$>

扩展阅读,根据您访问的内容系统为您准备了以下扩展内容,希望对您有帮助。

求推荐网络营销的课程或者书籍?

五本经典网络营销类书籍:

1、《广告人手记》

叶茂中大概是早期对我所理解的品牌营销策划方面影响最多的一个人,作为策划界操盘数十亿品牌最多的策划人,堪称营销界的一面旗帜。正如书封面所言:他影响了中国广告界。而大师于2013年9月10日在他的微博忏悔:“我干营销干广告24年,最难过的是为推广产品,编了太多的概念,不乏忽悠,给社会传递不少负能量。惭愧至极,忏悔至极。从今天起,挑企业,挑产品。挖掘真正的好产品推荐给消费者,向社会输出正能量!”

从这一刻开始,我认为他落幕了,做品牌也是在做人,在输出价值观。他赢了名声,却输了格局。

2、《超级符号就是超级创意》

这是一本关于营销创意和方法的书籍,作者就是封面两位帅哥,他们的封面就是最好的营销诠释,炯炯有神直视读者,这是最能吸引注意力的方式,蔡康永的书籍也同样运用了这个原理。设计师出身的作者强调“品牌就是符号“,好的符号、品牌命名、标志能降低营销成本,一切营销战略的出发点都是消费者和社会价值,最好的调研来自对生活积累和观察,我比较认同里面的部分观点,认为对于实际工作和生活也有指导作用,但书中关于推销他们自己的广告过多,可忽略。

3、《品牌22律》

作者里斯是品牌管理界的大师,甚至说是祖师,叶茂中一代大师的很多营销思想也深受其影响,从中可以看出很多影子。曾风靡一时的定位概念就是他提出并推广的。书中不是告诉我们做品牌要遵守什么定律,而是反其道告诉我们哪些事不能做。观点简洁直接,短小精悍,浅显易懂,案例丰富,适合大众读者。缺点是逻辑性有点差,煽动性大于实用性。

4、《网络营销推广实战宝典》

严格的说,这不是一本特别好的书,很多理论和方法且已经过时,但从网络营销角度看,这是一本比较全面的书,能比较系统的全面的了解网络营销的方方面面。从事件营销开始,对博客、微博、微信、SEO、SEM、视频、SNS、APP等众多的网络营销方式与手段逐一介绍,并评价其优劣。也附带了作者的大量实操案例,具有一定的知识普及性;チ贝绾巫銎放朴,传统企业如何转型借助互联网活的更好,企业自媒体如何打造,新媒体营销,这些是读完这本书后要思考的问题。

5、《史玉柱自述:我的营销心得》

史玉柱迄今为止唯一公开著作,讲述24年创业和营销心得,书如同史玉柱这个人一样,没有什么太多深奥理论,娓娓道来,轻描淡写,一语道破营销本质,但是史玉柱造就的脑白金广告时代也落幕了,而他留下的营销观点依旧适用,如一切营销的起点是创造好产品。没有持续性积累能量的广告不是好营销。营销就是研究人性等。特别是他做市场调研的方法,我十分认同。因此,史玉柱不是企业家中理论最多的人,确实最重视目标客户的人。

以上推荐五本,供参考。

提眉后有一条线的疤痕怎么办?提眉后遗症有哪些?

提眉一般在眉毛下方眉缘处做切口进行手术 术后会留有线形瘢痕 但在眉缘一般不明显 可术后半年外用抗瘢痕药物 抑制瘢痕增生 除外瘢痕体质的人一般治疗后不会太明显

提眉手术一般不会损伤肌肉和神经 基本不会遗留后遗症 所以不用担心

宗教或道教相关,天意为何不可违逆,再大的神也只有顺从天意?

天意不可违,宇宙中有最高造物主,只有顺从天意,才能获得开心快乐自由幸福。

禅院文集 上帝篇

上帝篇--前言

雪峰

人类的过去在哪?人类未来的极限点又在哪儿?

靠人类的智慧能阻挡住小行星对地球的撞击吗?

若不知道,或不能,那么,我们就寻求上帝吧!

《道德经》25章首句曰:有物混成,先天地生。

《圣经》开宗明义讲:太初,上帝创造了天和地。

《金刚经》云:“若以色见我,以音声求我,是人行邪道,不能见如来(上帝)!

《诗经.文王之什.大明》道:“维此文王,小心翼翼。昭事上帝,聿怀多福!

科学巨匠史蒂芬.霍金在《时间简史》第8章“宇宙的起源和命运”中说:“广义相对论本身不能解释这些特征或回答这些问题,因为它预言,在大爆炸奇点,宇宙是从无限密度开始的,在奇点处,广义相对论和所有其他物理定律都失效!

“看来科学揭露了一组定律,在不确定性原理极限内,如果我们知道宇宙在任意时刻的状态,这些定律就会告诉我们它如何随时间发展。这些定律也许原先是由上帝颁布的!

“一种可能的回答是,上帝选择宇宙的这种初始结构,是因为某些我们无望理解的原因。这肯定是在一个全能的造物主的力量之内!

“除非作为上帝有意创造像我们这样生命的行为,否则,要解释为何宇宙用这种方式起始是非常困难的!

人有眼、耳、鼻、舌、身、意六种感官,所以有视觉、听觉、嗅觉、味觉、触觉、灵觉六种知觉,人靠这六种知觉来与物质世界和反物质世界沟通。

假设一个人没有视觉,是瞎子,那么,我们如何使他相信宇宙中有光明呢?又如何证明光明的存在呢?

我们没有办法。因为没有视觉就无法知觉光明。

假设一个人没有听觉,是聋子,那么,我们如何使他相信大自然中有声音呢?又如何证明声音的存在呢?

我们没有办法。因为没有听觉就无法知觉声音。

假如一个人没有灵觉,是灵蒙,那么,我们如何使他相信宇宙中有上帝呢?又如何证明上帝的存在呢?

我们同样也没有办法。因为没有灵觉就无法知觉上帝。

灵觉是一种先天具有的本能?苛榫跬耆梢灾醯缴系鄣拇嬖。

人人都有灵觉,却为什么仍然感知不到上帝的存在呢?

那是因为灵觉被蒙,灵觉迟钝了。就像人的视力下降,看不清眼前的景物了。

视力下降,配一副眼镜,就可以看清眼前景物了。

灵觉迟钝,提升智慧,就可以感知上帝的存在了。

有人用一个二律悖反的问题试图否定上帝的存在,这个问题是,“上帝能创造出一个他自己举不起来的石头吗?”

这个问题使我们处于两难的境地,若说“不能”,那就彻底否定了上帝,若说“能”,就证明上帝举不起自己创造的那块石头,既然举不起一块石头,也同样否定了上帝。对此,不论如何回答,其结果都是否定上帝,起码否定了上帝万能的属性。

发明这个二律悖反问题的人非常智慧精明,他的一个小问题就可以迷惑住许多人的灵性,使人远离上帝,远离智慧,这个人不是撒旦,就是不被上帝蒙悦的人,他吃不到葡萄了,也就要想办法说葡萄是酸的,进而妨碍他人去吃葡萄。

“上帝能创造出一个他自己举不起来的石头吗?”这个问题是一个圈套,类似的问题如:

“你是个东西吗?”

如何回答这个问题?无论说“是”还是“不是”,其结果都会落入设计者的圈套,比如回答“我不是个东西!被颉拔沂歉龆!逼浣峁家谎。

所以,对二律悖反的问题,都不能进行直接的肯定或否定的回答,而要从问题本身出发来考虑或反问。比如对“你是个东西吗?”的反问是,反过来问提出问题的人,“你是个东西吗?”看他如何回答。对“上帝能创造出一个他自己举不起来的石头吗?”的反问是:“上帝创造的石头难道他能举不起来吗?”

“上帝能创造出一个他自己举不起来的石头吗?”这个问题对上帝本身不成立,就像“你是个东西吗”对人本身不成立那样。此外,这个问题本身是个双重否定题,也就是说,无论如何回答,问题本身已经做出了否定。诸如此类的问题难倒了许多哲学家和逻辑学家。我编辑以下几个,看我们如何回答。

“你不是你父母生的动物吗?”

“眼睛能看不见眼睛吗?”

“人不是非动物吗?”

诸如此类的问题,都不能直接回答,而要变换一下条件。

对上帝问题的回答是:上帝能创造出任意条件下的石头。上帝能举起任意条件下的石头。

还要问吗?

如果要继续问,我还可以这样来解决。我首先要问:“什么叫举起?双手扶着石头,然后让石头居于头顶上方,算不算举起?”若不算,那么,什么叫举起?若算,假设这个石头是地球,那么我倒立起来,两手扶着地球,地球是不是在我头顶上方?你可能要说,这个不算,因为地球不在我头顶上方,而是在头顶下方。好!那么我沿着地球的经线移动360度并一直做同样的动作,地球总该在有个点上处于我头顶上方了吧?没有?那么,请问,宇宙中的哪一个点在我们的上方?哪一个点又在我们的下方?这时候,你可能又要说,尽管我的双手扶着地球,尽管地球在我头顶上方,但无论如何,地球不是我举起来的,而是地球的引力吸着我的。如果这样,那么,首先我们要否定一开始所说的“举起”的含义了,就是说,双手扶着石头,让石头居于头顶上方不算“举起”。那么,什么叫“举起”?

无论如何定义“举起”的含义,我只要改变方位,我可以说我“举起”了地球,如果你说我“举起”了地球,那么,我可以证明我没有“举起”地球。那么,“上帝能创造出一个自己举不起来的石头吗”这个问题成立吗?

我们要寻求上帝、认识上帝,否则,我们根本无法知晓宇宙的起源、生命的起源、人类的过去和未来。甚至不能理解动物的本能和人生的目的。

我今年46岁,从事过20多个相互不同的职业:牧羊、农民、民工、团支部*、文书、党支部*、公社文艺宣传队指导员、钳工、电工、汽车修理工、中学教师、科员、办公室主任、翻译、司机、推销员、杂货店经理、餐馆采购、酒吧招待、夜晚俱乐部负责人、快餐部经理、房产开发等。除了办公室主任和餐馆采购只从事了两个月外,其余工种的从事时间都在半年以上。

从事这么多工种的收获是什么?

收获是,没有信仰和毫无目标的人生恰似天空随风飘动的浮云。

几年前我亲身经历的一场迷一般的车祸,促使我开始探索人生的意义,我活着到底为了什么?为了祖国和民族?瞎扯,我连自己的生存问题都解决不好,还高谈什么为祖国和民族!为父母?肯定不是,否则父母去世了我不可能再继续活着!为爱人?哪里的话,我不存在了,爱人有可能活的更好!为子女?不对,那些没有子女的人为什么还要活着?子女成家立业了我还有什么理由继续活着?活着不仅再帮不了子女的忙,反而会给子女增添麻烦和负担。为自己?笑话!我既决定不了自己的生,也决定不了自己的死,若让我选择,我宁愿无生、宁愿是个零,那么,是谁让我来到了这个世界?是父母偶然的结合生产出这个偶然的我?绝对不是!宇宙是由定律和规律控制的,一切的一切都是一种必然,不存在什么毫无目的的偶然事件。

一切的存在都有各自的目的,那我存在的目的是什么?这种不明不白、稀里糊涂的活着我受不了。要么死,要么让我明明白白、清清楚楚地活下去,即使不知道自己从哪儿来,起码要清楚自己要到哪儿去!否则,明天若突然遇上又一次车祸,死了,岂不冤枉!

有钱能使我明白活着的目的吗?好像世界上还没有一个百万富翁解决人生的目的问题,若等到有钱了,恐怕剩下的精力和时间也不多了,尚未弄清楚目的,就已经呜呼哀哉了。再说,钱这个东西不是想有就能有的,否则,人人都会成亿万富翁。

有权能使我明白活着的目的吗?自古以来,人类的历史上出现了多少帝王将相,又有哪一个明白了人生的目的?哪一位给我们留下了“人生宝典”?

成为科学家就能明白人生的目的吗?就连伟大的牛顿、爱因斯坦、史蒂芬.霍金都不清楚宇宙的起源、人类的起源、生命的起源,我成了一个科学家就能比他们更明白?再说了,就像我天生不具备歌唱家的嗓子,成不了一个歌唱家一样,我能成为一个科学家吗?这种梦我不能做。

成其他的什么这个“家”,那个“家”能使我明白活着的目的吗?恐怕也不能,就像考古学家和人类学家,他们一会儿说人类起源于欧洲,一会儿又说人类起源于亚洲,过一会儿又说人类的祖先在非洲,这种靠地下挖掘出几片化石就肯定人类起源地的理论靠不住,说不定再过些时日又会在哪儿挖掘出一片化石然后又要说人类的起源地在南极。

读《圣经》能使我明白人生的目的吗?或许我天资愚鲁,我读了几年《圣经》,还是不开悟。上帝的王国到底在哪儿?是已经存在,还是将来要发生?若将来要发生,那么,在哪儿发生?“将来”是指一千年,一万年,还是一亿年?我的人生可是只有几十年!肉体能复活吗?如何复活?耶稣是神,这毫无疑问,问题是,还有没有制约耶稣的其他的神?若没有其他神制约,为什么耶稣还要受难?为什么耶稣的*们几乎都死于非命?难道神连自己的命运都控制不了?作为神,为什么连自己的几个*都;げ涣?为什么只有受苦才能获得来世的福祉?

佛教经典总能给我指明方向吧!

佛讲人有前世和来世,讲生生世世,讲因果报应,讲因缘组合,这很有道理。但因果到底如何转化?到底如何做人才能有一个美好的来世?西方极乐世界到底在哪?到底是个什么样子?浩如烟海的佛教典籍我没有全部读过,我也不敢妄下结论,但佛教存在两千多年了,至今仍然无法让人清楚明白人生的目的,若人生仅仅是个受苦受难受罪的过程,为什么上帝还要创造那么多美的东西让人类享受?若人生的目的是为了成佛?那么,什么叫佛?如何成佛?成佛的概率多大?假设有一千个人修佛,若仅仅只有2——3个人能成佛,其余的人岂不“赔了人生又折乐!

金钱、权利和地位、科学家和其他专家、*教和佛教等肯定都有各自的道理,但都无法让人活得明白清楚,更何况像我这样的普通凡人连每日的吃饭问题都解决不好,那有时间去精通社会、精通自然科学、精通宗教等大学问。

有没有捷径可走?能不能越过神佛和人类积累的知识,直接寻求上帝,因为只有上帝知道一切,只有上帝才能有最终的决定权。

到哪儿去找上帝?

阅读“无字书”,读天、读地、读人、读物。幸好我从事过20多个不同工种,经历过许多的人生磨难,加上高中毕业后又上了三次学,在农村、小城镇、大城市都生活过,使我能够把各种现象和事件串起来进行连锁思考,但思考的结果还是比较模糊。

问题出在哪?

偶然翻阅《古兰经》得到很大启发,《古兰经》中说:“神类和人类大众!如果你们能逃脱天地的疆域,那你们就尽管逃出,但你们若不借重权威的帮助,就不可能逃出!

对呀!我不借重权威(上帝)的力量和帮助,怎能逃出“天地的疆域”。

如何借重上帝的帮助?

靠灵觉,人是宇宙中的一分子,“天人相应”,脚指头上扎一个小刺,大脑能立刻感应到,我给上帝发“思维传真”,上帝必然知晓。

果不其然,宇宙的诞生、生命的起源、人类的起源、36维空间逐渐在我大脑“屏幕”上显现了出来。而命运的问题不解自开。

到这时,才认识了上帝、认识了神耶稣、认识了佛释迦牟尼、认识了仙祖老子、认识了人类、知晓了宇宙、时间、空间、能量与物质、肉体与灵体、生命的本质、及人活着的目的。

我靠灵觉认识了上帝,但灵觉只能意会,无法言传。为了抛砖引玉,我用40个自然现象和8个逻辑推理来对上帝的存在强作证明,并说明上帝的8大特征和上帝与人类的8大关系。你能否感应到上帝,就全靠自己的灵觉和智慧了。

---------------------------------------------------------

目 录

一、宇宙中有一个超自然灵魂。

1、有序运行的太阳系需要有"人"设计安排。

2、地球至太阳的距离是刻意安排的。

3、地球的自转是有意的安排,自转的速度是经过精确的计算确定的。

4、地球环绕太阳运行的速度是严格按照物质运动规律设置的。

5、地球的倾斜是特意的设置。

6、月球是地球上生命的保证。

7、地球至月球的距离是丝毫不能有偏差的。

8、大风大浪、台风和闪电是特意的编排。

9、整个太阳系是专门为地球人类设置的。

10、地球的皮肤--大气层。

11、生命的;ど--臭氧层。

12、地球的血液--水。

13、价廉物美的日用品--盐。

14、光合作用--生命食粮的源泉。

15、自然界的对称--神秘而伟大的力量。

16、黄金分割--绝美的比例。

17、大脑--宇宙的缩影。

18、基因--生命的天书。

19、千姿百态的生命奇观。

20、生命的;せ--条件反射。

21、两性愉悦,不仅仅是为了传宗接代。

22、上帝的杰作--自然之美。

23、明亮的眼睛--通向美的窗户。

24、奇妙的生物遥感、传感和感应。

25、腐化--新生命的养料。

26. 生死--令人迷惑的现象。

27. 公鸡打鸣。

28. 蜜蜂的智慧。

29. 小鸡破壳而出。

30. 候鸟迁徙,奥秘在哪?

31. 动物本能--上帝智慧的显现。

32. 天女散花--蒲公英的绝技。

33. 神秘的金字塔昭示着什么?

34. 法老的诅咒--神的约束。

35. 神秘的百慕大为何神秘。

36. 海市蜃楼--极乐世界的显现。

37. 梦--在昭示着什么?

38. 宗教与上帝。

39. 科学与文明。

40. 人类文明的兴起和衰落。

二、证明上帝存在的八个逻辑推理。

1、万物有源,源头为上帝。

2、万物在动,初动力来自上帝。

3、万物有象,象的本质是能量,能量的核心是上帝。

4、因果相连,凡果都有因,所有因的初因即上帝。

5、万物存在都有目的,终极的目的是为上帝。

6、生命有等级,最高级就是上帝。

7、万物有序,秩序的制订者就是上帝。

8、万物相互感应,感应的终端是上帝。

三、上帝的八大特征。

1、上帝是唯一的。

2、上帝无定形。

3、上帝是中性的。

4、上帝无明。

5、上帝公正。

6、上帝仁慈。

7、上帝是超能的。

8、上帝是智慧的。

四、上帝与人类的八大关系。

1、形体相貌关系。

2、智慧关系。

3、隶属关系。

4、因果关系。

5、情感关系。

6、距离关系。

7、感应关系。

8、对应关系。

五.《圣经》宣扬的上帝不是真正的上帝。

1、亚当夏娃的背叛。

2、埃及十大灾殃。

3、以色列是上帝的子民。

4、该隐的故事。

5、先知与梦。

六.翻译上帝的"话语"。

www.vw-sh.com true http://www.vw-sh.com/exploit/21/217152.html report 57789 HTML5设计原理,站长交易(http://jy.Xue163.com)友情链接交换虚拟主机评测+IDC导航=net188.cnJeremyKeith在Fronteers2010上的主题演讲下载PPT(PDF)观看视频今天我想跟大家谈一谈HTML5的设计。主要分两个方面...
娱乐时尚
历史文化
真视界
旅游美食
精彩图文
我爱我车
母婴健康
关于本站 | 广告服务 | 手机版 | 商务合作 | 免责申明 | 招聘信息 | 联系我们
Copyright © 2004-2018 book1234.com All Rights Reserved. 布客网 版权所有
京ICP备10044368号-1 京公网安备11010802011102号
教育考试: 学历财经建筑 医药公考资格外语电脑作文招聘中小学留学 文档 移民 文库专栏23问答中心z资讯z资讯1资讯涨资讯涨资讯1资讯问答图书馆知识IT编程数码信息解决方案信息中心IT科技问答新闻中心软件教室设计大全网络相关英语学习开发编程考试中心参考范文管理文库营销中心站长之家IT信息中心商学院数码大全硬件DIY企业服务网吧在线百科硬件知识手机平板汽车游戏家电精彩摄影现代家居IT女人经验健康养生猎奇创业攻略教育学习历史时尚潮流最近更新涨知识
北京快乐8 我爱小品网| 斗牛棋牌| 棋牌游戏| 斗牛棋牌| 建筑安装|