文献种类:专题技术文献;
<frameset>标签
开发工具与关键技术:VS/HTML
作者:吴泽锋
撰写时间:2019年6月28日
6、<frameset>标签:
frameset 元素可定义一个框架集。它被用来组织多个窗口(框架)。每个框架存有独立的文档。
在其最简单的应用中,frameset 元素仅仅会规定在框架集中存在多少列或多少行。
使用者必须使用 cols 或 rows 属性。
提示:不能与 <frameset></frameset> 标签一起使用 <body></body> 标签。不过,如果需要为不支持框架的
浏览器添加一个 <noframes> 标签,请务必将此标签放置在 <body></body> 标签中!
可选择的属性:
属性 值 描述
cols pixels、%、* 定义框架集中列的数目和尺寸。
rows pixels、%、* 定义框架集中行的数目和尺寸。
作用和用法:
<frameset> 标签有一个必需的属性:
要么是 rows,要么是 cols,这取决于您的选择,它们定义了文档窗口中框架或嵌套的框架集的行或列的大小及数目。
这两个属性都接受用引号括起来并用逗号分开的值列表,这些数值指定了框架的绝对像素点)
或相对(百分比或其余空间)宽度(对列而言),或者绝对或相对高度(对行而言)。
这些属性值的数目决定了浏览器将会在文档窗口中显示多少行或列的框架。
与表格一样,浏览器在显示时会尽可能接近给定的框架集尺寸。
但是,浏览器不会为了能够容纳下超出边沿的框架集而扩展文档窗口的边界,
也不会在指定的框架没有填满整个窗口时用空白区域来填满窗口。
相反,浏览器会根据一个框架在行和列中相对于其他框架的大小来分配空间,
这样就能够填满整个文档窗口了。(注意到一个主框架文档中没有滚动条了吗?)
例1:下面的代码将创建 3 行框架:
<frameset rows="150,300,150"></frameset>
其中的每行都贯穿整个文档窗口。
第一和最后一给框架被设置为150像素高,第二行设置为300像素高。
实际上,除非浏览器窗口正好是500像素高,
否则就浏览器将会自动按照比例延伸或压缩第一和最后一个框架,
使得这两个框架都占据 1/4 的窗口空间。中间行将会占据剩下 1/2 的窗口空间。
例2:用窗口尺寸的百分比表示的框架行和列尺寸数据更加实际。
下面这个示例与刚才那个示例的效果相同:
<frameset rows="25%,50%,25%"></frameset>
当然,如果这些百分比加起来不是 100%,
浏览器也会自动按照比例重新给出每行尺寸以消除差异。
例3:如果你像我们一样,那么将问题综合起来就不是一件难事。可能有的框架设计人员正为同样的
困难而感到苦恼,这就解释了为什么他们要在 <frameset> 的 rows 和 cols 值上 加上 星号。
它告诉浏览器要在将相邻的框架放入框架集之后,给剩下的空间分配各自的行或列。
例如,当浏览器遇到下列框架标签时:
<frameset cols="100, *">
<frame src="/come/Index_1">
<frame src="/come/Index_2">
</frameset>
先:生成index_1页面 初始化时宽度为100像素 的列,
后:生成index_2页面 的列,
则该列 会占据框架集中 其余所有的空间;
例4:还可以对多个列或行属性值使用星号。
在这样的情况下,相应的行或列将对可用空间进行等分:
列框架==垂直框架:
<frameset cols="100, *,*">
<frame src="/come/Index_1">
<frame src="/come/Index_2">
<frame src="/come/Index_3">
</frameset>
index_2 和 index_3 初始化时均分除 index_1的100宽度外的空间;
行框架==水平框架:
<frameset rows="*,100, *">
<frame src="/come/Index_1">
<frame src="/come/Index_2">
<frame src="/come/Index_3">
</frameset>
在框架集的中间生成一个 100 像素高的行,并在这行的上边和下边各生成一个相同尺寸的行。
例5:如果在星号前放置一个整数值,相应的行或列就会相对地获得更多的可用空间。
<frameset cols="10%, 3*, *, *">
<frame src="/come/Index_1">
<frame src="/come/Index_2">
<frame src="/come/Index_3">
<frame src="/come/Index_3">
</frameset>
它生成了 4 列:第一列占据整个框架集宽度的 10%。
然后浏览器把其他空间的 3/5 分配给第二个框架,第三个和第四个框架各分配其余空间的 1/5。
即:
index_1=10%,
index_2=3个index_3 or index_2=3个index_4,
index_3=index_4=1/3的index2
从上面的例子可以发现,使用星号(尤其是用数值作为前缀),可以很容易地在一个框架集中分割剩下的空间。
提示:需要注意的是,浏览器允许用户手动地为单个框架文档的行或列重新确定大···小,
并因此改变每个框架在框架显示中各自占据的相对比例,除非你显式地告诉浏览器不要这样做。
为了防止这种情况,可以在 <frame> 标签中使用 noresize 属性。
借鉴于W3C