最近,我和一位客户讨论一个内部使用的网络应用软件,会议进行得很顺利,直到他提及框架页的使用。他选择框架页作为站点的版面设计,因为他要取代现有的VB程序。但是目前,框架页的使用难以令人满意,虽然我已经不记得最后一次编写使用框架页的程序的时间了,但我却记得使用框架页的那段艰难时光。在这篇文章中,我将向您解释为什么要避免使用框架页而考虑其它的设计方案。
基本概念
在很多年前首次引入的时候,框架页曾经是一个很酷的概念。我还记得在横幅、导航和站点内容部分分别使用单独的框架页。即使您不熟悉框架页的概念也没有关系,其概念并不复杂,基本上,HTML框架页允许您将浏览器窗口划分为单独的空间或框架。
还有框架的HTML元素主要用于基于框架的版面设计,框架元素定义了单独的空间或框架集,这些框架页包含在框架元素中,框架元素的行与列的属性定义了框架页的版面效果。列表A中的HTML代码创建了一个示例框架集,网络开发区的文档将载入到左边的框架页,而同时Download.com网站将被载入到右边的框架页。
<html>
<head>
<title>Frames</title>
</head>
<frameset cols="400, *">
<frame name="left" src="http://www.jzxue.com/html/rumen/2007/8/13429J34F.html" SCROLLING="yes" NORESIZE>
<frame name="right" src="http://www.jzxue.com/" SCROLLING="yes" NORESIZE>
<noframes><body>
This appears if frames aren't supported.
</body>
</noframes>
</frameset>
</html>
列表A
每个框架页的SCROLLING属性决定了用户是否能在该框架页中使用滚动条;NORESIZE属性则说明了该框架页不能被重新设定大小,因而其宽度是静态的;而noframes元素则提供了在不支持框架的浏览器中的显示效果;在框架页上除了这些之外就没有其它的选项了,您可以参考相关的HTML资源来获取更多信息。
在上个例子中,将两个网站载入到框架页中并不是最实际的应用,框架页通常用于将浏览窗格放置在左侧或着顶端,而内容放置在右侧或者底部,通过设定框架页的宽度(或者高度)并载入所需要的页面,这一功能很容易实现。框架页的概念很简单,但是大部分网络开发人员都蔑视这一功能。
缺陷
近来,框架页的使用难以令网络开发社区感到满意,实际上,在XHTML 1.1规范中,已经不再支持框架页了,它已经被XFrames所取代。所以这是放弃使用框架页的一个原因,但目前被支持的标准怎么样呢?以下列出了框架页没有被广泛使用的原因:
很多网络开发人员从哲理的角度讨论了框架页,它们认为框架页的使用违反了互联网的基本概念,因为这将造成大量的独立页面无法被链接。
虽然大部分网络浏览器可以依照设计显示出框架页,但是对于非传统的浏览器平台,比如手机、掌上设备等,却没有实现此功能,即使基于框架页的设计方法是有用的,但在这些平台上却造成了混乱。
搜索引擎在处理使用框架页管理的网站时会遇到麻烦,很多搜索引擎,比如Google,会跳过框架页内容而对没有框架的内容进行索引。