说说页面中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>
猜你喜欢
- 模块化分页1.查询语句块<% 取得当前文件名 temp = Split(request.ServerV
- SQL Server Extended Events(下面简称XEvent)是SQL Server 2008里新加的事件处理系统,用来取代S
- 1. 什么是404404是一个 http 错误代码,即请求的网页不存在。代码404的第一个“4”代表客户端的错误,如错误的网页位址;后两的数
- 按照本文操作和体会,会对sql优化有个基本最简单的了解,其他深入还需要更多资料和实践的学习: 1. 建表: 代码如下:creat
- 1. 用Dreamweaver 4.0制作闪动的Flash按钮选择菜单Insert→Interactive Images→Flash But
- <% class menusPublic Title, ID, Image, TitleColor, Target, Backgrou
- 随着WEB标准在国内的不断普及,结构表现行为分离、模块化、语义化、优雅退化等概念也成为考核一名前端人员对WEB标准理解的重要条目,其中,由于
- 一.权限表mysql数据库中的3个权限表:user 、db、 host权限表的存取过程是:1)先从user表中的host、 user、 pa
- css可以处理16,777,216颜色,可以使用名字、rgb值或十六进制代码。red红色等同于 rgb(255,0,0) &nbs
- 实这本是说明一个问题 : 每个人在提高自己能力这件事情上, 需要持续不断地努力。以最典型的例子来看,只有通过学习,程序员才能保证不断进步。
- 交互设计是近几年流行的一个词语。现在市场上有许多资料来介绍什么是交互设计,如何做交互设计等。从场景,任务,用户,操作等分析。但由于受实际情况
- CSS3草案中定义了{opacity:来声明元素的透明度,这已经得到了大多数现代浏览器的支持,而IE则很早通过特定的私有属性filter来实
- 这个代码不是很完善,能实现基本的功能;另外有个问题,就是divOpenWin层的定位问题:发现如果其属性设置成display:none,那么
- 如何利用网页弹出各种形式的窗口,我想大家大多都是知道些的,但那种多种多样的弹出式窗口是怎么搞出来的,我们今天就来学习一下:推荐:网页弹出窗口
- 在输入框里面预设一段提示文字,当焦点在输入框的时候清空这段文字,这在目前来说已经不是什么新鲜事了。淘宝的搜索框就用到了这样一种设计:这种设计
- 在默认情况下,Access 2000/2002数据库是以“共享”的方式打开的,这样可以保证多人能够同时使用同一个数据库。不过,在共享方式打开
- 文件:.wmv;大小:19,535KB;长度:00:26:39。 下载地址:SqlFunction_udf_Week.rar以下内容于201
- 今天我去隽辰的博客去看他的文章,在读完他的文章之后,我很自然的就去读网友们给他留的评论,在读的时候我发现他的评论是顺序的,也就是最早的评论在
- 无论是 DAO 还是 ADO 都有两种从 Recordset 对象中查询记录的方法: Find 方法和 Seek 方法。在这两种方法中可以让
- 如何用Cookie进行登录验证?很简单,看看这两个文件:login.htm请注册登录随风起舞<FORM ACTION=&qu