你的位置:首页 > 网页设计

[网页设计]关于HTML 5


一,避免不必要的复杂性。

例如,之前,若创建一个html页,开头我们必须写成像

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

或 <!DOCTYPE html PUBLIC "-//W3C/DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">的样子。

对html 5,<!DOCTYPE html>这样的格式就行了。

原因是,Doctype是写给验证器看的。也就是说,之所以要在文档一开头写那行XHTML 1.0的doctype,是为了告诉验证器,让验证器按照该doctype来验证我的文档。但按照HTML 5的另一个设计原理,它必须向前向后兼容,兼容未来的HTML版本——不管是HTML6、HTML7,还是其他什么——都要与当前的HTML版本,HTML 5,兼容。因此,把一个版本号放在doctype里面没有多大的意义,即使对验器证也一样。

还有像<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />在html 5里可以写成<meta charset="utf-8">

二, 支持已有的内容

例如在html5里属性值可以不加引号, 但加引号也对。下面这几种写法都是正确的

  • <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>

三, 解决现实的问题

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

例如:页面中已经有了一块内容,我想给整块内容加个链接。这块内容包括一个标题,一个段落

过去的做法:

  • <h2><a href="http://www.cnblogs.com//path/to/resource">Headline text</a></h2> 
  • <p><a href="http://www.cnblogs.com//path/to/resource">Paragraph text.</a></p> 

现在:

  • <a href="http://www.cnblogs.com//path/to/resource"> 
  • <h2>Headline text</h2> 
  • <p>Paragraph text.</p> 
  • </a>

四,求真务实

求真务实对于HTML的含义是:在解决那些令人头痛的问题之前,先看看人们为应对这些问题都想出了哪些办法。集中精力去理解这些“民间的”解决方案才是当务之急。

HTML 5中新的语义元素就是遵循求真务实原理的反映。新增的元素不算多,谈不上无限的扩展性,但却不失为一件好事。尽管数量屈指可数,但意义却非同一般。这些新 元素涉及头部(header)、脚部(footer)、分区(section)、文章(article)……,相信大家都不会觉得陌生。

例如:以前的文档:

  • <body> 
  • <div id="header">...</div> 
  • <div id="navigation">...</div> 
  • <div id="main">...</div> 
  • <div id="sidebar">...</div> 
  • <div id="footer">...</div> 
  • </body>

现在可以改成:

  • <body> 
  • <header>...</header> 
  • <nav>...</nav> 
  • <div id="main">...</div> 
  • <aside>...</aside> 
  • <footer>...</footer> 
  • </body>

五,平稳退化

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

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

六,最终用户优先

这个设计原理本质上是一种解决冲突的机制。

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

七,只为80%设计

这是一条常见的设计原理,也是一种通用模式,即帕累托原理

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

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

希望这些原理对大家的软件设计有所启发。