说说页面中header的XHTML结构选择

作者:dudo 来源:dudo博客 时间:2008-06-09 12:49:00 

页面中header部分一般位于最上端(有时根据需要也会位于某一侧,不管它在页面中的位置如何,在XHTML代码中它总是优于其它元素先加载),内容主要包括网站名称(Logo,次级标题可能是网站的一句口号等)和网站的导航部分。在推行Web标准的现代网络中,Web中对于header的代码结构似乎已经趋于稳定化。下面是一个典型的header代码结构:

<div id="header">  
   <h1>dudo 博客</h1>  
  <ul>  
        <li>首页</li>  
       <li>CSS</li>  
      <li>XHTML</li>  
        <li>JavaScript</li>  
   </ul>  
</div>  

这段代码我们可以通过添加CSS代码来实现多种布局样式。

之所以说是典型的布局方式,因为它既够简洁又有语义。<h1></h1>说明了标签内容在页面中的作用和重要层次,<ul>、<li>无序列表列出了站内的所有主要内容分类,并通过<li>标签说明它们是同级相邻的,等等,诸如此类。

但是我们要考虑考虑。导航(也就是我们的menu)在页面应该处于什么样的位置呢?和普通文本相比,它们肯定会处于更高级的位置之上。或者这么说,导航(menu)应该和网站标题的关系更加亲密一些。在我们上面的代码结构中,我们看不出menu和<h>之间的关系来,或者说这些<ul>、<li>标签与<h1>的关系和footer中的<ul>、<li>与<h1>的关系没有任何区别。

因此我们要换一个方式来表达这个语义。我们很容易就会想到使用<dl>、<dt>、<dd>。<dl>来定义一个列表,<dt><dd>说明附属关系。因此上面的header部分我们可以这样来写:

<div id="header">  
   <dl>  
        <dt>dudo 博客</dt>  
      <dd>首页</dd>  
       <dd>CSS</dd>  
      <dd>XHTML</dd>  
        <dd>JavaScript</dd>  
   </dl>  
</div>  

如果你还有其它的内容要在header中出现,则可以配合<ul>、<li>一起使用:

<div id="header">  
   <dl>  
        <dt>dudo 博客</dt>  
      <dd id="siteMenu">  
          <ul>  
                <li>首页</li>  
               <li>CSS</li>  
              <li>XHTML</li>  
                <li>JavaScript</li>  
           </ul>  
       </dd>  
       <dd id="userMenu">  
          <ul>  
                <li>加入收藏</li>  
             <li>设为首页</li>  
             <li>Engling Version</div>  
         </ul>  
       </dd>  
   </dl>  
</div>  

这段代码似乎更加饱满一点。我们只从代码就能看出标题与导航的关系,就是<dt>、<dl>的关系。

这似乎有一个问题:<h1></h1>没有了!是的,我们为了表达标题和导航(menu)之间的关系放弃了<h1>的使用。这里,我对是否要在网站标题中使用<h1>持怀疑态度。以我的观点,<h1>不应该出现在页面内容的外围。而我们经常这么去使用(我也经常去这样使用)是为了提高你的“网站标题”在页面中的重要程度。如果对于首页来说可以这么做的话,那么对于子页面来说,页面的内容才是最重要的。有人这么去理解<h1>的使用:网站标题处于最高层次,所以它应该使用<h1>,而页面中的所有需要使用标题的地方都应该使用<h2>、<h3>等等。按这种说法,<h1>似乎只能在一个页面中出现一次。首先,W3C对于<h>标题的规定中没有这一条,其次,导航(menu)要比文章标题级别要高(因为网站的目录就是:网站——分类(用menu来表示)——文章)所以导航应该用二级标题<h2>,充其量文章的标题也只能用个<h3>。这无疑是一种过度语义化,我们根据自己的理解赋予了标签不具有的含义。

要想突出标题的重要,只用一个方法足够:在<head>中指定<title>...<title>的内容即可。因此,个人建议,在<header>中的设计代码结构使用<dl>、<dt>、<dd>要比使用<h1>和<ul>更具语义。如果你觉得网站的标题部分就应该用<h1>来表示,那么可以在<dt>中嵌套<h1>,合理的语义表达而增加标签并不和代码简洁原则冲突。那么上面的代码

<div id="header">  
   <dl>  
        <dt>  
            <h1>dudo 博客</h1>  
      </dt>  
       <dd id="siteMenu">  
          <ul>  
                <li>首页</li>  
               <li>CSS</li>  
              <li>XHTML</li>  
                <li>JavaScript</li>  
           </ul>  
       </dd>  
       <dd id="userMenu">  
          <ul>  
                <li>加入收藏</li>  
             <li>设为首页</li>  
             <li>Engling Version</div>  
         </ul>  
       </dd>  
   </dl>  
</div>  
标签:header,xhtml,内容,标签
0
投稿

猜你喜欢

  • sqlserver主键自增的实现示例

    2024-01-16 22:41:10
  • python安装mysql-python简明笔记(ubuntu环境)

    2024-01-14 17:49:17
  • 浅谈SQL Server中的三种物理连接操作(性能比较)

    2024-01-25 22:11:56
  • 懒懒交流会:ClassName的长命名 VS. 短命名

    2009-11-28 16:08:00
  • Python 读写文件的操作代码

    2021-11-16 02:43:44
  • Python3 Random模块代码详解

    2023-04-11 01:36:20
  • PHP header()函数使用详细(301、404等错误设置)

    2023-11-02 17:28:23
  • Python中的//符号是什么意思呢

    2023-11-18 10:18:27
  • vue 巧用过渡效果(小结)

    2024-04-10 10:33:28
  • update.where无索引导致MySQL死锁问题解决

    2024-01-28 01:21:25
  • ASP:一个网站空间多个域名访问

    2008-11-21 17:03:00
  • 微信小程序实现简单计算器与秒表

    2024-04-18 09:31:23
  • python3实现TCP协议的简单服务器和客户端案例(分享)

    2023-01-11 13:11:21
  • python三引号输出方法

    2023-05-28 13:00:27
  • 请站在用户的角度上说话

    2009-05-12 12:03:00
  • 区别div和span、relative和absolute、display和visibility

    2009-12-13 12:18:00
  • 解决在Dreamweaver中不支持中文文件名的方法

    2010-09-02 12:35:00
  • 解密ThinkPHP3.1.2版本之模板继承

    2023-09-06 16:02:15
  • MySQL数据库优化推荐的编译安装参数小结

    2024-01-23 09:32:33
  • Django ORM F对象和Q对象查询

    2023-10-23 15:33:04
  • asp之家 网络编程 m.aspxhome.com