HTML5设计原则(4)

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

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中这些新语义标记的真正价值所在。换句话说,我们现在有了独立的元素了,这些元素中的标题级别可以重新定义。

标签:HTML5,设计,XHTML2
0
投稿

猜你喜欢

  • asp.net结合aspnetpager使用SQL2005的存储过程分页

    2023-07-14 00:22:23
  • 古老的问题:清除浮动

    2009-02-12 11:21:00
  • Go实现用户每日限额的方法(例一天只能领三次福利)

    2024-05-22 10:20:09
  • Matplotlib实现各种条形图绘制

    2023-11-20 15:52:51
  • vue中使用jwt-decode解析token的方法

    2023-07-02 17:03:24
  • jquery表单验证使用插件formValidator

    2023-07-02 05:30:54
  • Kears 使用:通过回调函数保存最佳准确率下的模型操作

    2023-02-24 12:36:56
  • GO语言中通道和sync包的使用教程分享

    2024-02-10 15:14:16
  • 通过python模糊匹配算法对两个excel表格内容归类

    2023-02-14 20:57:49
  • 浅谈一下mysql数据库底层原理

    2024-01-27 21:19:39
  • MySQL 的覆盖索引与回表的使用方法

    2024-01-20 22:40:37
  • 方便和实用

    2009-02-02 10:16:00
  • 基于golang uint8、int8与byte的区别说明

    2024-05-09 09:56:03
  • mysql数据表的基本操作之表结构操作,字段操作实例分析

    2024-01-17 18:15:54
  • MySQL Order By用法

    2011-01-04 19:50:00
  • Python基于jieba, wordcloud库生成中文词云

    2022-12-24 06:31:04
  • python对数组进行反转的方法

    2023-08-12 13:38:54
  • 使用Python3 poplib模块删除服务器多天前的邮件实现代码

    2023-05-08 08:21:54
  • python安装模块如何通过setup.py安装(超简单)

    2023-06-13 00:46:30
  • 使用ACCESS做网络版程序的四种解决方案

    2009-01-14 16:22:00
  • asp之家 网络编程 m.aspxhome.com