c. solve real problems
解决现实的问题
这看起来有点像再说废话, 谁不是为了解决问题在做事情的呢?
而这条设计原理才是真正要解决今天的人们所面临的现实问题、令人头疼的问题。
好吧, 继续看代码: <h2>Heading text</h2> <p>Paragraph text.</p>
现在我们需要给这两个文本都加上一个链接, 那我们的做法会是什么? 给h2和p分别加上一个a标签? 或许,也有聪明的同学会用a标签来整个包住h2和p,就像: <a href="somewhere"> <h2>Heading text</h2> <p>Paragraph text.</p> </a>
这样写有错吗?没错吧?只不过是种不太好的习惯, 并且通不过严格的校验.
但是这样的应用场景肯定存在的, 那为什么不能这样写呢?
这种写法其实早就已经存在于浏览器中了,因为早就有人这样写了,当然以前这样写是不合乎规范的。所以,说HTML5解决现实的问题,其本质还是“你都这样写了很多年了吧?现在我们把标准改了,允许你这样写了。”
d. pave the cowpaths
求真务实
Cowpath: 把一群牛放在地里,然后看牛喜欢怎么走,然后根据牛群踩过的痕迹来铺一条给牛走的路。
很有趣的比喻吧, 说的就是把一些既然存在的东西变得更加标准一些. 接上地气的标准才是能够被执行的标准.
举个栗子:
WHATWG对抽样对大量网站进行了分析, 得出了这样的一个结论:
id=”header”, id=”footer”, id=”content”, id=”navigation”, id=”sidebar” 这样的命名方式非常常见, 那好吧, 那我就给你们一些这样的标签!
<section>,<article>,<aside>,<nav>,<header>,<footer>,<details>,<figure>
看代码: <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>
怎么样? 像模像样了吧?
再看: <div class="item"> <h2></h2> <div class="meta"></div> <div class="content"></div> <div class="link"></div> </div>
再变! <section class="item"> <header><h2></h2></header> <footer class="meta"></ footer > <div class="content"></div> <nav class="link"></nav> </section>
虽然在这个文档中,我们用这些新元素来替换的是id,但在我个人看来,将它们作为类的替代品更有价值。为什么这么说呢?因为这些元素在一个页面中不止可以使用一次,而是可以使用多次。没错,你可以为文档添加一个头部(header),再添加一个脚部(footer);但文档中的每个分区(section)照样也都可以有一个头部和一个脚部。而每个分区里还可以嵌套另一个分区,被嵌套的分区仍然可以有自己的头部和脚部,是这样吧?
这四个新元素:section、article、aside和nav,之所以说它们强大,原因在于它们代表了一种新的内容模型,一种HTML中前所未有的内容模型——给内容分区。迄今为止,我们一直都在用div来组织页面中的内容,但与其他类似的元素一样,div本身并没有语义。但section、article、aside和nav实际上是在明确地告诉你——这一块就像文档中的另一个文档一样。位于这些元素中的任何内容,都可以拥有自己的概要、标题,自己的脚部。
其中最为通用的section,可以说是与内容最相关的一个。而article则是一种特殊的section。aside呢,是一种特殊的section。最后,nav也是一种特殊的section。
最重要的是它们的语义;跟位置没有关系。
这里,请注意,最重要的还不是我用几个新元素替换了原来的div加类,而是我把原来的H2换成了H1——震撼吧,我看到有人发抖了。我碰到过不少职业的Web开发人员,多年来他们一直认为规范里说一个文档中只能有一个H1。还有一些自诩为万能的SEO秘诀同样说要这样。很多SEO的技巧其实是很教条的。所谓教条,意思就是不相信数据。过去,这种教条表现为“不行,页面中包含两个以上的H1,你就会死掉的。”在HTML5中,只要你建立一个新的内容块,不管用section、article、aside、nav,还是别的元素,都可以在其中使用H1,而不必担心这个块里的标题在整个页面中应该排在什么级别;H2、H3,都没有问题。
这个变化太厉害了。想一想吧,这个变化对内容管理是革命性的。因为现在,你可以把每个内容分区想象一个独立的、能够从页面中拿出来的部分。此时,根据上下文不同,这个独立部分中的H1,在整个页面中没准会扮演H2或H3的角色——取决于它在文档中出现的位置。面对这个突如其来的变化,也许有人的脑子会暂时转不过弯来。不要紧,但我可以告诉你,我认为这才是HTML5中这些新语义标记的真正价值所在。换句话说,我们现在有了独立的元素了,这些元素中的标题级别可以重新定义。
出处:Alibaba.com UED
责任编辑:bluehearts
上一页 HTML5设计原则 [4] 下一页 HTML5设计原则 [6]
◎进入论坛网页制作、WEB标准化版块参加讨论,我还想发表评论。
|