您的位置:首页 > 理论基础 > 计算机网络

frame,iframe,frameset 的区别(来源网络)

2013-01-05 09:47 323 查看
frame,iframe,frameset的区别

frame,iframe,frameset的区别
<FRAMESET><FRAME>
<NOFRAMES>
<IFRAME>
欲明白本篇【HTML剖析】之标记分类请看【标记一览】。
亦请先明白围堵标记与空标记的分别请看【HTML概念】。

■框架概念:
所谓框架便是网页画面分成几个框窗,同时取得多个URL。只需要<FRAMESET><FRAME>即可,而所有框架标记需要放在一个总起的html档,这个档案只记录了该框架如何划分,不会显示任何资料,所以不必放入<BODY>标记,浏览这框架必须读取这档案而不是其它框窗的档案。<FRAMESET>是用以划分框窗,每一框窗由一个<FRAME>标记所标示,<FRAME>必须在<FRAMESET>范围中使用。如下例:
<framesetcols="50%,*">
<framename="hello"src="up2u.html">
<framename="hi"src="me2.html">
</frameset>
此例中<FRAMESET>把画面分成左右两相等部分,左便是显示up2u.html,右边则会显示me2.html这档案,<FRAME>标记所标示的框窗永远是按由上而下、由左至右的次序。

本节与Composer教室的【运用框架】大部分相同,只是本节增加了内容及较为详细,正如其它篇章一样并不会提及网页制作工具,若阁下学会了HTML相信你亦不会选用Composer,FrontPage一类的工具了。

■<FRAMESET><FRAME>:(frameset和BODY,在BODY标签中的FRAMESET是无法显示框架的)

<FRAMESET>称框架标记,用以宣告HTML文件为框架模式,并设定视窗如何分割。
<FRAME>则只是设定某一个框窗内的参数属性。
<FRAMESET>参数设定:
例子:<framesetrows="90,*"frameborder="0"border=0framespacing="2"bordercolor="#008000">

COLS="90,*"
垂直切割画面(如分左右两个画面),接受整数值、百分数,*则代表占用馀下空间。数值的个数代表分成的视窗数目且以逗号分隔。例如COLS="30,*,50%"可以切成叁个视窗,第一个视窗是30pixels的宽度,为一绝对分割,第二个视窗是当分配完第一及第叁个视窗后剩下的空间,第叁个视窗则占整个画面的50%宽度为一相对分割。您可自己调整数字。

ROWS="120,*"
就是横向切割,将画面上下分开,数值设定同上。唯COLS与ROWS两参数尽量不要同在一个<FRAMESET>标记中,因Netacape偶然不能显示这类形的框架,尽采用多重分割。

frameborder="0"
设定框架的边框,其值只有0和1,0表示不要边框,1表示要显示边框。(避免使用yes或no)
border="0"
设定框架的边框厚度,以pixels为单位。
bordercolor="#008000"
设定框架的边框颜色。颜色值请参考【调色原理】。
framespacing="5"
表示框架与框架间的保留空白的距离。

<FRAME>参数设定:
例子:<framename="top"src="a.html"marginwidth="5"marginheight="5"scrolling="Auto"frameborder="0"noresizeframespacing="6"bordercolor="#0000FF">

SRC="a.html"
设定此框窗中要显示的网页档案名称,每个框窗一定要对应着一个网页档案。你可使用绝对路径或相对路径,有关此两者详见於【连结进阶】。
NAME="top"
设定这个框窗的名称,这样才能指定框架来作连结,必须但任意命名。
frameborder=0
设定框架的边框,其值只有0和1,0表示不要边框,1表示要显示边框。(避免使用yes或no)
framespacing="6"
表示框架与框架间的保留空白的距离。
bordercolor="#008000"
设定框架的边框颜色。颜色值请参考【HTML剖析】。
scrolling="Auto"
设定是否要显示卷轴(滚动条),YES表示要显示卷轴,NO表示无论如何都不要显示,AUTO是视情况显示。
noresize
设定不让使用者可以改变这个框框的大小,亦没有设定此参数,使用者可以很随意地拉动框架,改变其大小。
marginhight=5
表示框架高度部份边缘所保留的空间。
marginwidth=5
表示框架宽度部份边缘所保留的空间。
以下是一些例子:(与Composer教室的【运用框架】相同)

例子HTMLCode
<framesetrows="80,*">
<framename="top"src="a.html">
<framename="bottom"src="b.html">
</frameset>

例子HTMLCode
<framesetrows="80,*,80">
<framename="top"src="a.html">
<framename="middle"src="b.html">
<framename="bottom"src="c.html">
</frameset>

例子HTMLCode
<framesetcols="150,*">
<framesetrows="80,*">
<framename="upper_left"src="a.html">
<framename="lower_left"src="b.html">
</frameset>
<framename="right"src="c.html">
</frameset>

例子HTMLCode
<framesetrows="80,*">
<framename="top"src="a.html">
<framesetcols="150,*">
<framename="lower_left"src="b.html">
<framename="lower_right"src="c.html">
</frameset>
</frameset>

例子HTMLCode
<framesetcols="150,*">
<framename="left"src="a.html">
<framesetrows="80,*">
<framename="upper_right"src="b.html">
<framename="lower_right"src="c.html">
</frameset>
</frameset>

Frameset和BODY冲突的例子

<body>

<divheight="100%">
<framesetrows="80,*">
<noframes>
<body>
很抱歉,阁下使用的浏览器不支援框架功能,请转用新的浏览器。
</body>
</noframes>
<framename="top"src="a.html">
<framename="bottom"src="b.html">
</frameset>
</div>
</body>

■<NOFRAMES>:
当别人使用的浏览器太旧,不支援框架这个功能时,他看到的将会是一片空白。为了避免这种情况,可使用<NOFRAMES>这个标记,当使用者的浏览器看不到框架时,他就会看到<NOFRAMES>与</NOFRAMES>之间的内容,而不是一片空白。这些内容可以是提醒浏览转用新的浏览器的字句,甚至是一个没有框架的网页或能自动切换至没有框架的版本亦可。
应用方法:
在<frameset>标记范围加入</NOFRAMES>标记,以下是一个例子:

<framesetrows="80,*">
<noframes>
<body>
很抱歉,阁下使用的浏览器不支援框架功能,请转用新的浏览器。
</body>
</noframes>
<framename="top"src="a.html">
<framename="bottom"src="b.html">
</frameset>
若浏览器支援框架,那麽它不会理会<noframes>中的东西,但若浏览器不支援框架,由於不认识所有框架标记,不明的标记会被略过,标记包围的东西便被解读出来,所以放在<noframes>范围内的文字会被显示。

■<IFRAME>:(适用于BODY标签中的框架)

这标记只适用於IE(comet:也使用于FireFox)。它的作用是在一页网页中间插入一个框窗以显示另一个文件。它是一个围堵标记,但围着的字句只有在浏览器不支援iframe标记时才会显示,如<noframes>一样,可以放些提醒字句之类。通常iframe配合一个辨认浏览器的JavaScript会较好,若JavaScript认出该浏览器并非InternetExplorer便会切换至另一版本。PS:一定要使用</iframe>关闭,否则后面的内容显示不出来。

<iframe>的参数设定如下:
例子:<iframesrc="iframe.html"name="test"align="MIDDLE"width="300"height="100"marginwidth="1"marginheight="1"frameborder="1"scrolling="Yes"></iframe>

src="iframe.html"
欲显示於此框窗的文件来源除档案名称,必要加上相对或绝对路径。
name="test"
此框窗名称,这是连结标记的target参数所需要的,
align="MIDDLE"
可选值为left,right,top,middle,bottom,作用不大
width="300"height="100"
框窗的宽及长,以pixels为单位。
marginwidth="1"marginheight="1"
该插入的文件与框边所保留的空间。
frameborder="1"
使用1表示显示边框,0则不显示。(可以是yes或no)
scrolling="Yes"

========================================================================

frameset中如何点击关闭左栏??

一个framset
<framesetid="fset1"rows="50,*"cols="*"framespacing="0"border="1"frameborder="no">
<framesrc="top.asp"name="top"frameborder="no"scrolling="no"noresize="noresize"marginwidth="0"marginheight="0"id="top"/>
<framesetid="fset2"rows="*"cols="188,*"framespacing="0"frameborder="no"border="0"bordercolor="#FFFFFF">
<framesrc="left_news.asp"id="left"name="left"/>
<framesrc="main.asp"id="main"name="main"/>
</frameset>
</frameset>

现在我想在TOP中做一个按钮,当点击时,关闭下方左侧的栏目,再点击则打开,请高手们帮忙了!!
---------------------------------------------------------------

这还不简单:onclick="fset2.cols='1,*';"
如果不行就:onclick="parent.fset2.cols='1,*';"

---------------------------------------------------------------

top.asp:
<inputtype="button"onclick="top.fset2.cols='1,*'">
---------------------------------------------------------------

TRY:
t.htm
<framesetid="fset1"rows="50,*"cols="*"framespacing="0"border="1"frameborder="no">
<framesrc="top.asp"name="top"frameborder="no"scrolling="no"noresize="noresize"marginwidth="0"marginheight="0"id="top"/>
<framesetid="fset2"rows="*"cols="188,*"framespacing="0"frameborder="no"border="0"bordercolor="#FFFFFF">
<framesrc="l.htm"id="left"name="left"/>
<framesrc="main.asp"id="main"name="main"/>
</frameset>
</frameset>

l.htm
<bodybgcolor="buttonface"onclick="oc(top.fset2);">
<scriptlanguage="javascript">
functionoc(obj){
varoldcol=obj.cols;
if(oldcol=="10,*"){
obj.cols="188,*";
}else{
obj.cols="10,*";
}
}
</script>
</body>
---------------------------------------------------------------

index.htm:
###########################
<html>

<head>
<metaHTTP-EQUIV="Content-Type"CONTENT="text/html;charset=gb2312">
<title>隐藏框架</title>
</head>

<framesetid="f1"rows="5%,*">
<framename="top"src="hideFrame.htm"target="_self">
<framesetid="f2"cols="*,78%">
<framename="left"src="l.htm"marginwidth="1"marginheight="1"scrolling="no">
<framename="main"src="main.htm"target="_self">
</frameset>
<noframes>
<body>

<p>此网页使用了框架,但您的浏览器不支持框架。</p>

</body>
</noframes>
</frameset>

</html>
#########################################
hideFrame.htm:
###############
<html>

<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>隐藏框架</title>
<basetarget="_self">
<scriptlanguage="javascript">
functionHideFrame(obj)
{vartheCols=obj.cols;
if(theCols=="0,*")
{obj.cols="150,*";
}else
{obj.cols="0,*";}
}
</script>
</head>

<bodybgcolor="buttonface"topmargin="0"leftmargin="0"rightmargin="0"bottommargin="0"marginwidth="0"marginheight="0">
<tableborder="1"width="100%"id="table1">
<tr>
<tdalign=center>
<inputtype="button"value="单击隐藏左边的框架"name="B3"onclick="HideFrame(top.f2);"></td>
</tr>
</table>
</body>

</html>


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: