说说页面中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>


猜你喜欢
- 一、Python urllib 模块是什么urllib 模块是 Python 标准库,其价值在于抓取网络上的 URL 资源,入门爬
- 本文实例讲述了Python实现的多叉树寻找最短路径算法。分享给大家供大家参考,具体如下:多叉树的最短路径:思想: &n
- 文本文件具备初步存放、编辑各类数据的能力,并可以持久保留和数据共享。1. 建立文件 建立文本文件有两种途径:一是通过Windows的“记事
- LearningjQuery.com 博客帖子列表的左边有一个很酷的日期,如图:从图中我们看到,“2009”垂直排列在右侧。用Firebug
- 在网站开发的时候经常要用chr(),但本人比较懒没时间记那么多。于是到用到的时候就查,这样麻烦。现在将它写出来方便以后用到查,也方便大家!c
- 在matplotlib下,一个Figure对象可以包含多个子图(Axes),可以使用subplot()快速绘制,其调用形式如下:subplo
- 前言本文主要给大家介绍的是关于Python制作天气查询软件,下面话不多说了,来一起看看详细的介绍吧效果图以前,给大家分享了如何使用 PyQt
- 大家都遇到过验证码,随着灌水机的发展,验证码也是日新月异,验证码开始分了繁体简体,带着字母、符号,甚至开始了中文验证码,看到这样的验证码,估
- 前言之前在csdn上看见用python写春联的,这次突发奇想用python制作一张壁纸,其元素包括背景、文字、图片。知识点 用PIL创建一张
- 一 过滤器写法{{ message | Filter}}二 Vue自带的过滤器:capitalize功能:首字母大写<!DOCTYPE
- 一、Pythont如何打开 txt 格式的文件?1.首先我使用pycharm创建一个项目,然后在这个项目里面再创建一个python的包,然后
- get如果请求url没有变化,取出缓存,提高效率;请求会缓存到浏览器中,可以通过历史记录查看用户信息,安全性低;post传送变化的数据显示,
- 一、内容简介本篇文章着重结合源码版本V3.2.20介绍Reactive和Ref。前置技能需要了解Proxy对象的工作机制,以下贴出的源码均在
- 0. 学习目标在顺序存储方式中,根据数据元素的序号就可随机存取表中任何一个元素,但同时在插入和删除运算需要移动大量的元素,造成算法效率较低。
- 今年年初,新一季的《最强大脑》开播了,第一集选拔的时候大家做了一个数字游戏,名叫《数字华容道》,当时何猷君以二十几秒的成绩夺得该项目的冠军,
- hello world作为所有编程语言的起始阶段,占据着无法改变的地位,所有中/英/法/德/美……版本的编程教材中,hello world总
- 示例.1import randomfrom random import shufflex = [[i] for i in range(10)
- 一、设计理念1.先写一个登录的py文件,用python的tkinter库2.再写一个py文件用于爬取有道翻译输出栏的内容3.再利用pytho
- 无意中看到以前在电脑上保存的一个html页面,关于div水平垂直居中的问题。如何实现div水平垂直居中呢?1.已知宽高度水平垂直居中posi
- 本文实例讲述了python通过索引遍历列表的方法。分享给大家供大家参考。具体如下:python中我们可以通过for循环来遍历列表:colou