首页 > 代码库 > frameset的用法

frameset的用法

碰到一个frameset的问题,因为我比较懒,就先从网上拿来一篇基础知识,呵呵,好记性不如烂笔头啊

 
     所谓框架便是网页画面分成几个框窗,同时取得多个 URL。只需要 <FRAMESET> <FRAME> 即可,而所有框架标记需要放在一个总起的 html 档,这个档只记录了该框架如何分割 ,不会显示任何资料,所以不必放入 <BODY> 标记,浏览这框架必须读取这档案而不是其他框窗的档案。<FRAMESET> 是用来划分框窗,每一窗框由一个 <FRAME> 标记所标示,<FRAME>必须在 <FRAMESET> 范围中使用。如下例:

  <frameset cols="50%,*"> <frame name="hello" src="http://www.mamicode.com/up2u.html"> <frame name="hi" src="http://www.mamicode.com/me2.html">
  </frameset>

  此例中 <FRAMESET> 把画面分成左右两相等部分,左边是显示up2u.html,右边则会显示 me2.html 这档案,<FRAME>标记所标示的框窗永远是按由上而下、由左至右的次序
 

<FRAME>
用法:      定义一个帧
开始/结束标识: 必须/非法
属性:      name="..."定义帧的名字
         scr="..."定义在帧中显示的内容的来源
         frameborder="..."定义帧之间的边界(0或1)
         margwidth="..."设置帧的边界和其中内容之间的间距
         margheight="..."设置帧的边界和其中内容之间的间距化
         noresize="..."使帧的尺寸不能变
         scrolling="..."设置滚动条的表示方式(auto, yes, no)
空:       不允许
 
<FRAMESET>...</FRAMESET>
用法:      定义在一个窗口中帧的布局
开始/结束标识: 必须/必须
属性:      rows="..."设定行的数目
         cols="..."设定列的数目
         onload="..."当载入文档时的内部事件触发器
         onunload="..."当卸载文档时的内部事件触发器
空:       不允许
注释:      FRAMESET可以嵌套
 
以上所述只是最简单的框架设定,若希望达到更合适的效果请加入或修改以下各参数。
标记:<FRAMESET>
例子:<frameset rows="90,*"frameborder="0" border=0 framespacing="2" border="2"bordercolor="#008000"></frameset>
功用:宣告HTML文件为框架模式,并设定视窗如何分割。

参数:

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

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

frameborder="0"
设定框架的边框,其值只有 0 和 1 , 0 表示不要边框, 1 表示要显示边框。
 

border="0"
设定框架的边框厚度,以 pixels 为单位。
 

bordercolor="#008000"
设定框架的边框颜色。颜色值请参考【调色原理】。
 

framespacing="5"
表示框架与框架间保留的空白的距离。
标记:<FRAME>
例子:<framename="top" src="http://www.mamicode.com/a.html" marginwidth="5" marginheight="5"scrolling="Auto" frameborder="0" noresize framespacing="6"bordercolor="#0000FF">
功能:设定每一个框窗内的参数属性。
参数:


SRC="http://www.mamicode.com/a.html"
设定此框窗中要显示的网页档案名称,每个框窗一定要对应一个网页档案。
 

NAME="top"
设定这个框窗的名称,这样才能指定框架来作链接,必须但任意命名。
 

frameborder=0
设定框架的边框,其值只有 0 和 1 , 0 表示不要边框, 1 表示要边框。
 

framespacing="6"
表示框架与框架间的保留的空白的距离。
 

bordercolor="#008000"
设定框架的边框颜色。
 

scrolling="Auto"
设定是否要显示卷轴,YES 表示要显示卷轴,NO 表示无论如何都不要显示卷轴,AUTO 视情况而定。
 

noresize
设定不让使用者可以改变这个框框的大小,如没有设定此参数,使用者可随意地拉动框架改变其大小。
 

marginhight=5
表示框架高度部分边缘所保留的空间。
 

marginwidth=5
表示框架宽度部分边缘所保留的空间。

如果新建页面加入超链接例如;左边的超链接在右边显示相关内容,应定义文件left.html,内容为<html>
<head>
<title>
</title>
</head>
<body>
<a href="http://www.mamicode.com/right1.html"target="right">right中第一个文件</a><br/><!-- 注意其中的target属性值应与frame中右边的name属性值相同-->
<a href="http://www.mamicode.com/right2.html"target="right">right中第二个文件</a><!--注意其中的target属性值应与 frame中右边的name属性值相同-->
</body>
</html>

右面的两个文件 right1.html和right1.html内容分别为<html>
<head>
<title>
</title>
</head>
<body>
right中第一个文件

</body>
</html>

 

<html>
<head>
<title>
</title>
</head>
<body>
right中第二个文件

</body>
</html>

 

 

 

<noframes>标记:

 

当别人使用的浏览器太旧,不支持框架功能时,他看见的将是一片空白。为了避免这种情况,可使用<noframes>这个标记,当使用者的浏览器看不到框架时,他就会看到<noframes>与</noframes>之间的内容,而不是一片空白。这些内容可以是提醒浏览者采用新的浏览器的字句,也可以是一个没有框架的网页或切换到没有框架的版本的链接都可。

使用方法为:在<frameset>标记范围加入<noframes>标记,如

<frameset rows="80,*">

<noframes>

<body>

很抱歉,您使用的浏览器不支持框架功能,请采用新版本的浏览器。

</body>

</noframes>

<frame name="top"src="http://www.mamicode.com/b.html">

<frame name="bottom"src="http://www.mamicode.com/c.html">

</frameset>

   若浏览器支持框架,那么它不会理会<noframes>中的内容,但若浏览器不支持框架,由于不认识所有框架标记,不明的标记被略过,标记包围的内容便被解读出来,所以在<noframes>范围内的文字被显示。

程序举例:

   

  

程序代码程序代码
<framesetcols=#>  例:<framesetcols="100,200,300">
  <frameset rows=#> 例:<framesetrows="10%,20%,70%">

  #的值为一对用引号括起来的字符串,字符串中的数字表示每个分窗口所占的尺寸,数字中间用逗号隔开,有几个数字就表示分出了几个窗口。当然,这其中的任何一个数字也可以由“*”来代替,这样表示由浏览器自动设置其大小。

 
程序代码程序代码
 如:<framesetcols="100,200,*">
    <frameset cols="100,*,*">  将100像素以外的窗口平均分配
    <frameset cols="*,*,*">   将窗口分为三等份

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


纵向排列多个窗口:

程序代码程序代码
<framesetcols=30%,20%,50%>
  <frame src="http://www.mamicode.com/frame/A.html">
  <frame src="http://www.mamicode.com/frame/B.html">
  <frame src="http://www.mamicode.com/frame/C.html">
</frameset>



横向排列多个窗口:
程序代码程序代码
<framesetrows=25%,25%,50%>
  <frame src="http://www.mamicode.com/frame/A.html">
  <frame src="http://www.mamicode.com/frame/B.html">
  <frame src="http://www.mamicode.com/frame/C.html">
</frameset>



纵横排列多个窗口:

程序代码 程序代码
<framesetcols=20%,*>
  <frame src="http://www.mamicode.com/frame/A.html">
  <frameset rows=40%,*>
    <frame src="http://www.mamicode.com/frame/B.html">
    <frame src="http://www.mamicode.com/frame/C.html">
  </frameset>
</frameset> 

 

 

 

看一个范例:


<html>

<head>

<meta http-equiv="Content-Type" content="text/html;charset=gb2312">

<title>中国电信成都分公司渠道商业平台</title>

</head>


<frameset rows="100,*" cols="*" frameborder="NO"border="0" framespacing="0">

  <framesrc="http://www.mamicode.com/chlidpage/top.htm" name="topFrame" scrolling="NO"noresize>

  <framesetrows="*" cols="200,*" framespacing="0" frameborder="NO"border="0">

   <frame src="http://www.mamicode.com/chlidpage/left.htm"name="leftFrame" scrolling="NO" noresize>

   <frame src="http://www.mamicode.com/admin/gh.htm"name="mainFrame">

  </frameset>

</frameset>

<noframes><body>

</body></noframes>

</html>