HTML 框架

通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面。


框架

通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面。每份HTML文档称为一个框架,并且每个框架都独立于其他的框架。使用框架的优势:

  • 能够把嵌入的网页原样展现出来;
  • 模块分离,便于更改,如果有多个网页引用iframe,只需要修改iframe的内容,就可以实现调用的每一个页面内容的更改,方便快捷;
  • 网页如果为了统一风格,头部和版本都是一样的,就可以写成一个页面,用iframe来嵌套,增加代码的可重用;
  • 如果遇到加载缓慢的第三方内容如图标和广告,这些问题可以由iframe来解决;
  • 重载页面时不需要重载整个页面,只需要重载页面中的一个框架页;

使用框架的坏处:

  • 开发人员必须同时跟踪更多的HTML文档
  • 很难打印整张页面
  • 产生多个页面,不易管理

框架结构标签(<frameset>)

定义如何将窗口分割为框架每个 frameset 定义了一系列行或列rows/columns 的值规定了每行或每列占据屏幕的面积编者注:frameset 标签也被某些文章和书籍译为框架集。


框架标签(Frame)

Frame 标签定义了放置在每个框架中的 HTML 文档。

在下面的这个例子中,设置了一个两列的框架集。第一列被设置为占据浏览器窗口的 25%。第二列被设置为占据浏览器窗口的 75%。HTML 文档 "frame_a.htm" 被置于第一个列中,而 HTML 文档 "frame_b.htm" 被置于第二个列中:

  1. <frameset cols=&#34;25%,75%&#34;>
  2. &nbsp;&nbsp; <frame src=&#34;frame_a.htm&#34;>
  3. &nbsp;&nbsp; <frame src=&#34;frame_b.htm&#34;>
  4. </frameset>

基本的注意事项 - 有用的提示:

假如一个框架有可见边框,用户可以拖动边框来改变它的大小。为了避免这种情况发生,可以在 <frame> 标签中加入:noresize="noresize"。为不支持框架的浏览器添加 <noframes> 标签。

重要提示:不能将 <body></body> 标签与 <frameset></frameset> 标签同时使用!不过,假如你添加包含一段文本的<noframes>标签,就必须将这段文字嵌套于 标签内。


更多实例

1、垂直框架,使用三份不同的文档制作。

  1. <html>
  2. <frameset cols="25%,50%,25%">
  3. <frame src="/example/html/frame_a.html">
  4. <frame src="/example/html/frame_b.html">
  5. <frame src="/example/html/frame_c.html">
  6. </frameset>
  7. </html>

2、水平框架,使用三份不同的文档制作。

  1. <html>
  2. <frameset rows="25%,50%,25%">
  3. <frame src="/example/html/frame_a.html">
  4. <frame src="/example/html/frame_b.html">
  5. <frame src="/example/html/frame_c.html">
  6. </frameset>
  7. </html>

3、混合框架结构,含有三份文档的框架结构,同时将他们混合置于行和列之中。

  1. <html>
  2. <frameset rows="50%,50%">
  3. <frame src="/example/html/frame_a.html">
  4. <frameset cols="25%,75%">
  5. <frame src="/example/html/frame_b.html">
  6. <frame src="/example/html/frame_c.html">
  7. </frameset>
  8. </frameset>
  9. </html>

4、导航框架,包含一个将第二个框架作为目标的链接列表。名为 “contents.htm” 的文件包含三个链接。

  1. <html>
  2. <frameset cols="120,*">
  3. <frame src="/example/html/html_contents.html">
  4. <frame src="/example/html/frame_a.html" name="showframe">
  5. </frameset>
  6. </html>

5、内联框架

  1. <html>
  2. <body>
  3. <iframe src="/images/demo.png"></iframe>
  4. <p>一些老的浏览器不支持 iframe。</p>
  5. <p>如果得不到支持,iframe 是不可见的。</p>
  6. </body>
  7. </html>

6、<noframes> 标签

  1. <html>
  2. <frameset cols="25%,50%,25%">
  3. <frame src="/example/html/frame_a.html">
  4. <frame src="/example/html/frame_b.html">
  5. <frame src="/example/html/frame_c.html">
  6. <noframes>
  7. <body>您的浏览器无法处理框架!</body>
  8. </noframes>
  9. </frameset>
  10. </html>

7、noresize 属性的框架结构,框架是不可调整尺寸的。在框架间的边框上拖动鼠标,你会发现边框是无法移动的。

  1. <html>
  2. <frameset cols="50%,*,25%">
  3. <frame src="/example/html/frame_a.html" noresize="noresize" />
  4. <frame src="/example/html/frame_b.html" />
  5. <frame src="/example/html/frame_c.html" />
  6. </frameset>
  7. </html>