网络编程
位置:首页>> 网络编程>> 网页设计>> HTML5设计原则(5)

HTML5设计原则(5)

作者:赵振宇  发布时间:2012-04-26 16:46:45 

标签:HTML5,设计,XHTML2

e. degrade gracefully

优雅降级

HTML5中设计了这么些新玩意:

 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”就会得到一个带小箭头图标的微调控件呢?

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

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

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

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

再来看一个比较极端的优雅降级方案:

 <video>     <source src="movie.mp4">      <source src="movie.ogv">       <source src="movie.webm">      <object data="movie.swf">          <a href="movie.mp4">download</a>      </object> </video>

很NB吧…

f. Priority of  constituencies

最终用户优先

事先声明, 这是条很哲学的设计原则, 没有代码可以看.

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

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

嗯, 要学会辩证的去看这些问题, 别钻牛角尖就好.

最后附上PPT, 花了老子半天时间整的20页啊!!!

HTML5 设计原则

还有这次分享的出处, Jeremy老板在W3C Tech上的分享的PPT(PDF)

Jeremy-DesignOfHTML5

还有感谢新总分享的翻译版Design of HTML5, 这篇文章在我编PPT时很给力:
JEREMY KEITH在 FRONTEERS 2010 上的主题演讲

以及他的原文出处,感谢为之漫笔(李松峰):
JEREMY KEITH在 FRONTEERS 2010 上的主题演讲

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com