欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面。
 
  通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面,简而言之,就是在一个窗口中显示多个页面。每个页面称之为一个框架。并且每个框架独立于其他的框架。
 
  使用框架的坏处:必须同时跟踪多个框架(网页或HTML文档),整个页面很难打印。
 
  1、框架标签(Frame)
 
  简单的三框架页面:
 
  <framesetcols="25%,50%,25%">
 
  <framesrc="frame_a.htm">
 
  <framesrc="frame_b.htm">
 
  <framesrc="frame_c.htm">
 
  </frameset>
 
  所有主流浏览器都支持<frame>标签。
 
  标签定义及使用说明
 
  <frame>标签定义<frameset>中的子窗口(框架)。
 
  <frameset>中的每个<frame>都可以设置不同的属性,比如border、scrolling,noresize等等。
 
  HTML4.01与HTML5之间的差异
 
  HTML5不支持<frame>标签,HTML4.01支持<frame>标签。
 
  HTML与XHTML之间的差异
 
  在HTML中,<frame>标签没有结束标签。在XHTML中,<frame>标签必须被正确地关闭。
 
  可选的属性
 
  属性 描述
 
  frameborder 0
 
  1 HTML5不支持。规定是否显示框架周围的边框。
 
  longdesc URL HTML5不支持。规定一个包含有关框架内容的长描述的页面。
 
  marginheight pixels HTML5不支持。规定框架的上方和下方的边距。
 
  marginwidth pixels HTML5不支持。规定框架的左侧和右侧的边距。
 
  name name HTML5不支持。规定框架的名称。
 
  noresize noresize HTML5不支持。规定无法调整框架的大小。
 
  scrolling yes
 
  no
 
  auto HTML5不支持。规定是否在框架中显示滚动条。
 
  src URL HTML5不支持。规定在框架中显示的文档的URL。
 
  标准属性
 
  在HTML4.01中,<frame>标签支持如下标准属性:
 
  属性 描述
 
  class classname 规定元素的类名
 
  id id 规定元素的唯一id
 
  style style_definition 规定元素的行内样式
 
  title text 规定元素的额外信息
 
  事件属性
 
  根据W3C的标准,在HTML4.01中,<frame>标签不支持任何的事件属性。
 
  但是,所有的浏览器都支持onload事件。
 
  基本的注意事项-有用的提示
 
  假如一个框架有可见边框,用户可以拖动边框来改变它的大小。为了避免这种情况发生,可以在<frame>标签中加入:noresize="noresize"。
 
  为不支持框架的浏览器添加<noframes>标签。
 
  重要提示:不能将<body></body>标签与<frameset></frameset>标签同时使用!不过,假如你添加包含一段文本的<noframes>标签,就必须将这段文字嵌套于<body></body>标签内。(在下面的第一个实例中,可以查看它是如何实现的。)
 
  如何使用<noframes>标签
 
  <html>
 
  <framesetcols="25%,50%,25%">
 
  <framesrc="/example/html/frame_a.html">
 
  <framesrc="/example/html/frame_b.html">
 
  <framesrc="/example/html/frame_c.html">
 
  <noframes>
 
  <body>您的浏览器无法处理框架!</body>
 
  </noframes>
 
  </frameset>
 
  </html>
 
  2、框架结构标签(<frameset>)
 
  框架结构标签(<frameset>)定义如何将窗口分割为框架
 
  每个frameset定义了一系列行或列
 
  rows/columns的值规定了每行或每列占据屏幕的面积
 
  编者注:frameset标签也被某些文章和书籍译为框架集。
 
  3、标签<iframe>标签
 
  iframe是个内联框架,是在页面里生成个内部框架。
 
  格式
 
  <iframe></iframe>
 
  属性
 
  frameborder{int}:是否显示框架的边框;
 
  src{URL}:指定一个资源(如网页、图片)的uri;
 
  scrolling{boolean}:是否显示框架的滚动条;
 
  width{int}:定义iframe的宽度;
 
  height{int}:定义iframe的高度;
 
  示例
 
  <body>
 
  <h3>HTML标签演示</h3>
 
  <iframesrc=1.1-ShowHtml.htm></iframe>
 
  </body>
 
  注意事项
 
  在"<iframe>我是内容</iframe>"内添加内容时,在展示页面不会显示添加的内容。所以还是使用src属性指定一个页面吧。
 
  应用场景
 
  1)版本升级页面,版本日志过多,可以把升级的信息放到一个iframe里。
 
  2)富文本编辑框,如博客园的【新建随笔】区域。
 
  4、frame,iframe,frameset之间的关系与区别
 
  iframe是在html页面内嵌入框架框架内可以连接另一个页面,
 
  如
 
  <html>
 
  <head></head>
 
  <body>
 
  <iframesrc="xxx.html"></iframe>
 
  </body>
 
  </html>
 
  frameset在一个页面中设置一个或多个框架不能嵌套在body标签里
 
  <html>
 
  <head></head>
 
  <frameset>
 
  <framesrc=""></frame>
 
  <framesrc=""></frame>
 
  </frameset>
 
  </html>
 
  frameset它称为框架标记,是用来告知HTML文件是框架模式,并且设定可视窗口怎么分割
 
  frame它只是设定某一个框架窗口中的参数属性
 
  iframe它是在一个页面中嵌入一个框架窗口
 
  frameset的属性
 
  1、cols它是把整个画面竖向分割成几个画面
 
  2、rows它是把整个画面横向分割成几个画面
 
  3、frameborder它表示设定这个框架的边框值。它的值只有两个0或者1.0表示不显示边框,1表示显示边框。
 
  4、border它表示了边框的宽度
 
  5、bordercolor它是设定了框架边框的颜色
 
  frame的属性
 
  1、src指在此框架窗口中要显示的网页档案的链接
 
  2、name指这个框架窗口的名称
 
  3、framespacing指框架和框架之间保留的空白的距离
 
  4、scrlling指该框架窗口是否要显示滚动条
 
  6、noresize指框架的尺寸不能被随意拖动,改变大小
 
  7、marginheight指框架顶部和底部边缘所保留的空间的大小
 
  8、marginwidth指框架左右两边边缘所保留的空间的大小。
 
  frameset和frame标签必须在一起使用
 
  frame有一个重要的值是target,它表示在指定的框架中打开网页
 
  而target有四个值
 
  1、blank它表示在一个新的窗口中打开链接网页
 
  2、top它表示在本窗口中打开链接网页
 
  3、parent在上一层的框架中打开链接网页
 
  4、self在超链接中打开链接网页
 
  target是在编写导航时肯定会用到的
 
  noframes指当浏览器完全显示不出这个框架时,页面就会显示出<noframes></noframes>内的内容。
 
  iframe的属性
 
  1、name是框架窗口的名称
 
  2、align是框架窗口中内容的对其方式
 
  3、width是框架窗口的宽,单位是pixels
 
  4、height是框架窗口的长,单位是pixels
 
  5、marginwidth是插入的文件和框架左右边缘所保留的空间
 
  6、marginheight是插入的文件和框架上下边缘所保留的空间
 
  7、frameborder是指是否显示边框。1表示显示边框,0表示不显示边框
 
  8、scrolling是指是否允许使用滚动条。
 
  利用frameset和frame可以把网页制作成所需要的不同大小的框架,可以用来布局。
 
  iframe则是把一些网页嵌入到当前网页中,达到所需要的效果。
 
  ■框架概念:
 
  所谓框架便是网页画面分成几个框窗,同时取得多个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>称框架标记,用以宣告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>
 
  ■<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>:
 
  这标记只适用於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"
 
  使用Yes表示容许卷动(内定),No则不容许卷动
 
  frame和iframe的区别
 
  1、frame不能脱离frameSet单独使用,iframe可以;
 
  2、frame不能放在body中;如下可以正常显示:
 
  <!--<body>-->
 
  <framesetrows="50%,*">
 
  <framename="frame1"
 
  src="test1.htm"/>
 
  <framename="frame2"
 
  src="test2.htm"/>
 
  </frameset>
 
  <!--<body>-->
 
  如下不能正常显示:
 
  <body>
 
  <framesetrows="50%,*">
 
  <framename="frame1"
 
  src="test1.htm"/>
 
  <framename="frame2"
 
  src="test2.htm"/>
 
  </frameset>
 
  <body>
 
  3、嵌套在frameSet中的iframe必需放在body中;如下可以正常显示:
 
  <body>
 
  <frameset>
 
  <iframename="frame1"
 
  src="test1.htm"/>
 
  <iframename="frame2"
 
  src="test2.htm"/>
 
  </frameset>
 
  </body>
 
  如下不能正常显示:
 
  <!--<body>-->
 
  <frameset>
 
  <iframename="frame1"
 
  src="test1.htm"/>
 
  <iframename="frame2"
 
  src="test2.htm"/>
 
  </frameset>
 
  <!--</body>-->
 
  4、不嵌套在frameSet中的iframe可以随意使用;
 
  如下均可以正常显示:
 
  <body>
 
  <iframename="frame1"
 
  src="test1.htm"/>
 
  <iframename="frame2"
 
  src="test2.htm"/>
 
  </body>
 
  <!--<body>-->
 
  <iframename="frame1"
 
  src="test1.htm"/>
 
  <iframename="frame2"
 
  src="test2.htm"/>
 
  <!--</body>-->
 
  5、frame的高度只能通过frameSet控制;iframe可以自己控制,不能通过frameSet控制,如:
 
  <!--<body>-->
 
  <framesetrows="50%,*">
 
  <framename="frame1"
 
  src="test1.htm"/>
 
  <framename="frame2"
 
  src="test2.htm"/>
 
  </frameset>
 
  <!--</body>-->
 
  <body>
 
  <frameset>
 
  <iframeheight="30%"
 
  name="frame1"src="test1.htm"/>
 
  <iframeheight="100"
 
  name="frame2"src="test2.htm"/>
 
  </frameset>
 
  </body>
 
  5、frame和iframe的区别
 
  1、frame不能脱离frameSet单独使用,iframe可以;
 
  2、frame不能放在body中;如下可以正常显示:
 
  <!--<body>-->
 
  <framesetrows="50%,*">
 
  <framename="frame1"src="test1.htm"/>
 
  <framename="frame2"src="test2.htm"/>
 
  </frameset>
 
  <!--<body>-->
 
  如下不能正常显示:
 
  <body>
 
  <framesetrows="50%,*">
 
  <framename="frame1"src="test1.htm"/>
 
  <framename="frame2"src="test2.htm"/>
 
  </frameset>
 
  <body>
 
  3、嵌套在frameSet中的iframe必需放在body中;如下可以正常显示:
 
  <body>
 
  <frameset>
 
  <iframename="frame1"src="test1.htm"/>
 
  <iframename="frame2"src="test2.htm"/>
 
  </frameset>
 
  </body>
 
  如下不能正常显示:
 
  <!--<body>-->
 
  <frameset>
 
  <iframename="frame1"src="test1.htm"/>
 
  <iframename="frame2"src="test2.htm"/>
 
  </frameset>
 
  <!--</body>-->
 
  4、不嵌套在frameSet中的iframe可以随意使用;
 
  如下均可以正常显示:
 
  <body>
 
  <iframename="frame1"src="test1.htm"/>
 
  <iframename="frame2"src="test2.htm"/>
 
  </body>
 
  <!--<body>-->
 
  <iframename="frame1"src="test1.htm"/>
 
  <iframename="frame2"src="test2.htm"/>
 
  <!--</body>-->
 
  5、frame的高度只能通过frameSet控制;iframe可以自己控制,不能通过frameSet控制,如:
 
  <!--<body>-->
 
  <framesetrows="50%,*">
 
  <framename="frame1"src="test1.htm"/>
 
  <framename="frame2"src="test2.htm"/>
 
  </frameset>
 
  <!--</body>-->
 
  <body>
 
  <frameset>
 
  <iframeheight="30%"name="frame1"src="test1.htm"/>
 
  <iframeheight="100"name="frame2"src="test2.htm"/>
 
  </frameset>
 
  </body>
 
  6、如果在同一个页面使用了两个以上的iframe,在IE中可以正常显示,在firefox中只能显示出第一个;使用两个以上的frame在IE和firefox中均可正常
 
  以上代码在IE7和firefox2.0中测试。
 
  另外相关论坛窃取总结:-)
 
  1Frame与Iframe两者可以实现的功能基本相同,不过Iframe比Frame具有更多的灵活性。
 
  frame是整个页面的框架,iframe是内嵌的网页元素,也可以说是内嵌的框架
 
  Iframe标记又叫浮动帧标记,可以用它将一个HTML文档嵌入在一个HTML中显示。它和Frame标记的最大区别是在网页中嵌入的<Iframe></Iframe>所包含的内容与整个页面是一个整体,而<Frame></Frame>所包含的内容是一个独立的个体,是可以独立显示的。另外,应用Iframe还可以在同一个页面中多次显示同一内容,而不必重复这段内容的代码。
 
  2iframe可以放到表格里面。frame则不行。
 
  <table>
 
  <tr>
 
  <td><iframeid=""src=""></iframe></td><td></td>
 
  </tr>
 
  </table>
 
  3frame必须在frameset里
 
  而frameset不能与body元素共存,也就说有frameset元素的文档只能是一个框架集,不能有别的东东
 
  4IFrame是放在网业的什么地方都行
 
  但是frame只能放到上下左右四个方向
 
  5iframme是活动帧
 
  而frame是非活动帧
 
  iframe使用方法如下
 
  <iframescr="sourcefile"frameborder=0width="width"height="height"></iframe>
 
  iframe用起来更灵活,不需要frame那么多讲究
 
  而且放的位置也可以自己设
 
  iframe是内嵌的,比较灵活,不过也有不好的地方,就是位置在不同的浏览器和分辨率下有可能不同,有时会把本来好好的页面搞得变形
 
  iframe就没有这个限制
 
  6iframe可以加在网页中任何一个地方。
 
  而frame通常做框架页
 
  iframe是一个网页中的子框架,两网页间是父子关系
 
  frame是框架,由多个并列的网页构成
 
  楼上的说得对,iframe是浮动的。就像是浮动面板,而frame是固定的。只能四个方向上的。
 
  你可以直接在网页里用一下,看看效果就行了。
 
  7<iframe>是被嵌入在网页的元素,而<frame>用于组成一个页面的多个框架!
 
  iframe更利于版面的设计
 
  frame一条直一条竖的不美观
 
  frame的那一条线也可以去掉的呦!只不过,iframe更方便对其进行数据的交换吧!
 
  iframe可以放置到你想放的任意位置,控制起来比frame方便
 
  8iframe是内部帧,可以嵌在一个页面里面,设置内部帧的属性可以使得整体看上去象一个完整的页面,而不是由多个页面组成,frame有frame的好处,比如何多网站,上面放广告条,左边放菜单,右边放内容,这样上边和左边的内容都可不动,只刷新右边页面的内容,选择iframe还是frame完全看自己的需求。
 
  说白了,用IFrame比用Frame少一个文件(FrameSet),但支持Frame的浏览器比较多。
 
  我为我公司做的网站,整个是用了iframe,linux带的浏览器都不支持,哎呀,丑呀,不过我还是喜欢用iframe
 
  还有iframe可以放在表格里,然后ifame设置成width=100%height=100%
 
  我就可以只需修改我的表格的宽度和高度,这样的话有利于排版
 
  其实Frame是一个控件
 
  使用方法和Panle相同。
 
  frame是把网页分成多个页面的页面。它要有一个框架集页面frameset
 
  iframe是一个浮动的框架,就是在你的页面里再加上一个页面,
 
  <frame>用来把页面横着或竖着切开,
 
  <iframe>用来在页面中插入一个矩形的小窗口
 
  Frame一般用来设置页面布局,将整个页面分成规则的几块,每一块里面包含一个新页面.
 
  iframe用来在页面的任何地方插入一个新的页面.
 
  因此,Frame用来控制页面格式,比如一本书,左边是章节目录,右边是正文,正文很长,看的时候要拖动,但又不想目录也被拖动得开不到了.因此最好将页面用Frame分成规则的2页,一左一右.
 
  而iframe则更灵活,不要求将整个页面划分,你可以在页面任何地方用iframe嵌入新的页面.
 
  我个人认为:
 
  <frame>用于全页面
 
  <iframe>只用于局部
 
  

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h56394.shtml