1 HTML之Frame框架
frame
,是网页开发必须掌握的知识。例如后台架构、局部刷新,页面分割,都是frame
的用途表现,尤其是后台页面制作,使用frame
会给用户带来非常舒适的使用感受。
frame
知识点包括(frameset
标签、frame
标签、iframe
标签)
1.1 各个介绍
1.1.1 Frameset
- 属性
border
:设置框架的边框粗细
bordercolor
:设置框架的边框颜色
frameborder
:设置是否显示框架边框。设定值只有0、1;0 表示不要边框,1 表示要显示边框
cols
:纵向分割页面。其数值表示方法有三种:30%、30(或者30px)、*
;数值的个数代表分成的视窗数目且数值之间用,
隔开。30%
表示该框架区域占全部浏览器页面区域的30%
;30
表示该区域横向宽度为30像素;*
表示该区域占用余下页面空间。例如:cols="25%,200,*"
表示将页面分为三部分,左面部分占页面30%
,中间横向宽度为200像素
,页面余下的作为右面部分。
rows
:横向分割页面。数值表示方法与意义与cols
相同。
framespacing
:设置框架与框架间的保留的空白距离。 - 用例
<frameset cols="213,*" frameborder="no" border="0" framespacing="0">
注意1:
cols
与rows
两属性尽量不要同在一个<frameset>
标签中使用。若要实现下图架构,代码正确写法为:
<frameset rows="59,*" cols="*" frameborder="no" border="0" framespacing="0">
<frame src="???" name="topFrame" scrolling="No" noresize="noresize" id="topFrame"/>
<frameset cols="213,*" frameborder="no" border="0" framespacing="0">
<frame src="???" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame"/>
<frame src="???" name="mainFrame" id="mainFrame"/>
【即,若想即使用cols
又使用rows
,可利用frameset
嵌套实现】
注意2:
<frameset cols="40%,*,*">
意思是:第一个框架占整个浏览器窗口的40%
,剩下的空间平均分配给另外两个框架。
<frameset cols="*,*,*,*">
:意思是:浏览器窗口等分为四部分。
1.1.2 Frame
- 属性
name
:设置框架名称。此为必须设置的属性。
src
:设置此框架要显示的网页名称或路径。此为必须设置的属性。
scrolling
:设置是否要显示滚动条。设定值为auto, yes, no
bordercolor
:设置框架的边框颜色。
frameborder
:设置是否显示框架边框。设定值只有0、1;0 表示不要边框,1 表示要显示边框。
noresize
:设置框架大小是否能手动调节。
marginwidth
:设置框架边界和其中内容之间的宽度。
marginhight
:设置框架边界和其中内容之间的高度。
width
:设置框架宽度。
height
:设置框架高度。
framespacing
:设置框架与框架间的保留的空白距离。 - 用例
<frame src="???"
name="topFrame"
scrolling="No"
noresize="noresize"
marginwidth="10"
marginhight="10"
width="400"
height="800" />
1.1.3 Iframe
Iframe
是浮动的框架(frame),其常用属性与frame
类似,其他的主要有以下(相同的就不列举了)
- 属性
align
:设置垂直或水平对齐方式
allowTransparency
:设置或获取对象是否可为透明。 - 用例
<iframe name="123"
align="middle"
marginwidth="0"
marginheight=0
src="???" frameborder="0"
scrolling="no" width="776"
height="2500"></iframe>
注意:
iframe
标签与frameset
、frame
标签的验证方法不同,是XHTML 1.0 Transitional
。且iframe
是放在body
标签之内,而frameset、frame
是放在body
标签之外
1.2 区别
1.2.1 Frameset与Frame的区别
首先讲解Frameset
与Frame
之间的区别
<Frameset></Frameset>
用来划分框架,每一个框架由<Frame></Frame>
标记。<Frame></Frame>
必须在<Frameset></Frameset>
之内使用
代码如下:
<FRAMESET border=1 frameSpacing=1 borderColor=#47478d rows=* cols=180,*>
<FRAME src="inc/admin_left.htm" name=left scrolling=no id="left">
<FRAME src="inc/admin_center.htm" name=main scrolling="no">
</FRAMESET>
在上面的例子当中,<Frameset></Frameset>
把页面分为左右两个部分,左侧框架中的页面是admin_left.htm
,右侧框架中的页面是admin_center.htm
。
注意:<Frame></Frame>
标记的框架顺序为从左至右或从上到下。
两者的差别如下:
-
<Frameset>
为框架标记,说明该网页文档为框架组成,并设定文档中组成框架集的框架的布局。 -
<Frame>
用以设置组成框架集中各个框架的属性。
1.2.2 Frame与Iframe的区别
1.2.2.1 两者大致区别
-
Frame
与Iframe
两者可以实现的功能基本相同,不过Iframe
比Frame
具有更多的灵活性 -
frame
不能脱离frameSet
单独使用,iframe
可以 -
Iframe
标记又叫浮动帧标记,可以用它将一个HTML
文档嵌入在一个HTML
中显示。它和Frame
标记的最大区别是在网页中嵌入的<Iframe></Iframe>
所包含的内容与整个页面是一个整体,而<Frame></Frame>
所包含的内容是一个独立的个体,是可以独立显示的。另外,应用Iframe
还可以在同一个页面中多次显示同一内容,而不必重复这段内容的代码。 -
iframe
用起来更灵活,不需要frame
那么多讲究
而且放的位置也可以自己设,iframe
是内嵌的,比较灵活,不过也有不好的地方,就是位置在不同的浏览器和分辨率下有可能不同,有时会把本来好好的页面搞得变形
1.2.2.2 放置位置区别
frameset
不能放在body
中;如下可以正常显示:
<frameset rows="50%,*">
<frame name="frame1" src="test1.htm"/>
<frame name="frame2" src="test2.htm"/>
</frameset>
嵌套在frameSet
中的iframe
必需放在body
中;如下可以正常显示:
<body>
<frameset>
<iframe name="frame1" src="test1.htm"/>
<iframe name="frame2" src="test2.htm"/>
</frameset>
</body>
不嵌套在frameSet
中的iframe
可以随意使用;
如下均可以正常显示:
<body>
<iframe name="frame1" src="test1.htm"/>
<iframe name="frame2" src="test2.htm"/>
</body>
<!--<body>-->
<iframe name="frame1" src="test1.htm"/>
<iframe name="frame2" src="test2.htm"/>
<!--</body>-->
1.2.2.3 高度控制区别
frame
的高度只能通过frameSet
控制;iframe
可以自己控制,不能通过frameSet
控制,如:
<!--<body>-->
<frameset rows="50%,*">
<frame name="frame1" src="test1.htm"/>
<frame name="frame2" src="test2.htm"/>
</frameset>
<!--</body>-->
<body>
<frameset>
<iframe height="30%" name="frame1" src="test1.htm"/>
<iframe height="100" name="frame2" src="test2.htm"/>
</frameset>
</body>
1.2.2.4 放置表格
iframe
可以放到表格里面。frame
则不行。
<table>
<tr>
<td><iframe id="" src=""></iframe></td><td></td>
</tr>
</table>
1.3 综合示例
<html>
<head>
<title>综合示例</title>
</head>
<frameset cols="25%,*">
<frame src="menu.htm" scrolling="no" name="Left">
<frame src="page1.htm" scrolling="auto" name="Main">
<noframes>
<body>
<p>对不起,您的浏览器不支持“框架”!</p>
</body>
</noframes>
</frameset>
</html>
【说明】
<noframes></noframes>
标志对也是放在<frameset></frameset>
标志对之间,用来在那些不支持框架的浏览器中显示文本或图像信息。在此标志对之间先紧跟<body></body>
标志对,然后才可以使用我们熟悉的任何标志。
网友评论