frame 的最主要功能是用来把一个页面划分成好几个小窗口页面,每个小窗口可以显示不同html文件,这样页面也可以称为框架结构页面,每个月小窗口称作框架窗口,下来将详细介绍框架窗口。
frame 在现在已经很少使用,虽然不是必须学习的,但还是建议了解学习下frame 、iframe的知识,在某些时候非常有用。
什么是 frame 框架
如果想将页面分成上下两部分,各自互相独立又互相关联,用户在其中一个部分操作页面不影响其它部分的页面,这样的页面也叫多窗口页面。
1、框架窗口基本结构:
框架窗口主要包含2部分,一个是框架集,一个是具体的框架文件。
框架集就是存放框架结构的文件,也是访问框架文件的入口,如果网页由上下2个框架窗口组成,那么除了这2个窗口的html文件,还有一个总的框架集文件。
框架文件是每个显示区域对应的html文件,如下示例:
index.html
框架页面
如上index.html 就是框架集文件,在这个框架集文件中定义了页面划分成上下2部分,分别对应top.html 和 bottom.html 2个框架窗口文件。
2、框架窗口分割
框架页面分割方式是在框架集frameset通过rows 或 cols 属性定义的,一般按分割类型分为以下几种:
- 水平分割窗口
- 垂直分割窗口
- 嵌套分割窗口
2.1 水平分割窗口
将页面按水平方向分割,也就是上下结构,语法:
在该语法中,rows 可以设置多个值,每个值对应一个框架窗口垂直高度,它的值可以使用像素单位或百分比单位。
如下示例:
显示效果:
比如上面这个,被从上到下分割成3个窗口,高度依次是25%,50%,25%。
2.2 垂直分割窗口
沿着页面垂直方向分割,也就是左右结构的多窗口页面。语法如下:
在该语法中,cols 可以设置多个值,每个值对应一个框架窗口水平宽度,它的值可以使用像素单位或百分比单位。
示例:
显示效果:
比如上面这个,被从左到右分割成3个窗口,宽度依次是25%,50%,25%。
2.3、嵌套分割窗口
嵌套窗口就是在一个页面既有水平分割又有垂直分割的窗口,如下示例:
先水平分割再垂直分割
显示效果:
先垂直分割再水平分割
显示效果:
理论上可以无限嵌套,是不是很好玩。
2.4、noframes
当浏览器布置frame 时会显示noframes 中的内容。如下代码:
效果显示:
框架集的属性
1、设置边框 —— frameborder
frameborder 等于0时不显示边框,默认显示。
2、边框宽度 —— framespacing
在html5中无效。
3、边框颜色 —— bordercolor
如下代码:
效果:
具体可以参考这里
https://www.cnblogs.com/lavenderzh/archive/2012/04/09/2438803.html 查看这几个属性的关系。
框架页面属性
1、页面源文件 —— src
就是每个框架窗口对应的html文件,这里可以是图片或其它文件。
2、页面名称 —— name
给每个框架窗口设置名称,有助于链接或查找窗口。
3、禁止调整窗口尺寸 —— noresize
党员鼠标拖到框架边框时,会发现鼠标形状变成可拖动的,可以改不框架窗口宽度或高度。如果不希望改变窗口宽度或高度,可以使用noresize 属性。
如下示例:
窗口a是不可改变宽度的。
浮动框架 —— iframe
浮动框架是一种特殊的框架,它是在主窗口中嵌套一个子窗口,也就是整个页面不是框架页面,但却包含了一个框架窗口。
示例:
效果如下:
1、浮动框架边框 —— frameborder
frameborder 属性规定是否显示 iframe 周围的边框。设置属性值为 "0" 就可以移除边框:
显示效果:
2、链接到框架页面
通过 a 标签的 target 属性可以跳转到框架页面,示例如下:
菜鸟教程(runoob.com)
显示效果如下,点击下面2个链接,切换窗口。
总结
frame 和 iframe 浮动框架用途很广,比如可以实现页面局部刷新,在之前被广泛使用,但是现在基本不建议使用,它有很多问题,比如安全性,性能方面等。
当然有时也会使用iframe,比如打印pdf,下载文件等等。