<frame> 标签定义 HTML 框架,框架必须放在框架集中,框架集用 <frameset> 标签定义。
三份不同的 HTML 文档制作一个垂直框架。
水平框架三份不同的 HTML 文档制作一个水平框架。
标签 | 属性 | 属性值 | 描述 |
---|---|---|---|
<frameset>:框架集 | rows | 数值 | 百分比 | 星号(*) | 定义框架在行上占据框架集的面积 |
cols | 数值 | 百分比 | 星号(*) | 定义框架在列上占据框架集的面积 | |
frameborder |
0:无边框 1:有边框 no:无边框 yes:有边框 |
定义框架边框 | |
border | 数值 | 设置边框的粗细(适用于 Netscape、Chrome、Firefox、Safari 等大部分主流浏览器) | |
framespacing | 数值 | 设置边框的粗细(适用于 Internet Explorer 浏览器) | |
<frame>:框架 | src | 定义要显示的页面地址 | |
noresize | noresize | 禁止拖拉边框 | |
scrolling |
auto:自动判断是否显示滚动条 yes:显示滚动条 no:不显示滚动条 |
定义滚动条是否显示 | |
name | 定义框架名称 | ||
<noframes> | 为不支持框架的浏览器显示文本 |
框架语法并不复杂:
<frameset cols="30%,70%">
<frame src="url" />
<frame src="url" />
</frameset>
不推荐同时使用框架和 <body> ,因为两者的关系比较复杂,通常会引发不可预知的问题:
关系 | 示例 | 结果 |
---|---|---|
框架嵌套在 <body> 里面 |
|
框架将无法显示,只会显示 body 里的其他 HTML 元素,如 p 元素。 |
框架在 <body> 之下 |
|
框架将无法显示,只会显示 body 里的其他 HTML 元素,如 p 元素。 |
框架在 <body> 之上 |
|
将会显示框架里的页面,不会显示 body 里的 HTML 元素。 |
在框架集 <frameset> 中通过 cols 属性设置垂直框架。
属性值,单位默认像素(px):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>垂直框架</title>
</head>
<frameset cols="25%,45%,*">
<frame src="http://www.bjbcode.com/" />
<frame src="html-first.html" />
<frame src="html-frame.html" />
</frameset>
</html>
尝试一下
在框架集 <frameset> 中通过 rows 属性设置水平框架。
属性值,单位默认像素(px):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>水平框架</title>
</head>
<frameset rows="25%,45%,*">
<frame src="http://www.bjbcode.com/" />
<frame src="html-first.html" />
<frame src="html-frame.html" />
</frameset>
</html>
尝试一下
框架默认有边框线,可以在框架集 <frameset> 中通过 frameborder、border、framespacing 属性对边框线进行设置。
frameborder 属性值:
border :设置边框的粗细(适用于 Netscape、Chrome、Firefox、Safari 等大部分主流浏览器)。
framespacing :设置边框的粗细(适用于 Internet Explorer 浏览器)。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>去除框架边框</title>
</head>
<frameset cols="25%,75%" frameborder="0">
<frame src="html-first.html" />
<frame src="html-frame.html" />
</frameset>
</html>
尝试一下
使用 frameborder 属性去除边框时,可以对 <frameset> 设置,也可以单独对某个 <frame> 设置,两者的区别在于:
- 对 <frameset> 去除边框后用户无法再通过拖动边框改变框架大小。
- 对 <frame> 去除边框后依然可以通过拖动边框改变框架大小(此规则不适用于 Internet Explorer 浏览器)。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>设置框架的边框宽度</title>
</head>
<frameset cols="25%,75%" frameborder="1" border="30" framespacing="30">
<frame src="html-first.html" />
<frame src="html-frame.html" />
</frameset>
</html>
尝试一下
默认情况下,框架都有边框,可以通过拖拉边框改变框架的大小。
如果需要禁用这项功能,则可以在 <frame> 标签中通过 noresize 属性设置:noresize="noresize" 。
若页面不能完整显示,可以通过 scrolling 属性设置滚动条是否显示。
scrolling 属性值:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>禁止拖动边框</title>
</head>
<frameset cols="25%,75%">
<frame src="html-first.html" noresize="noresize" />
<frame src="html-frame.html" scrolling="no" />
</frameset>
</html>
尝试一下
noresize 属性禁止拖动边框通常写做 noresize="noresize",但也可以简写为 noresize 。
可以使用 name 属性对每个框架进行命名。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>框架名称</title>
</head>
<frameset cols="25%,75%">
<frame src="html-first.html" name="frame_1" />
<frame src="html-frame.html" name="frame_2" />
</frameset>
</html>
尝试一下
当浏览器不能处理框架的时候,可以使用 <noframes> 标签进行说明。
noframes 元素位于 frameset 元素内部。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>noframes 标签</title>
</head>
<frameset cols="25%,75%">
<frame src="html-frame.html" />
<frame src="http://www.bjbcode.com/" />
<noframes>
<p>您的浏览器无法处理框架!</p>
</noframes>
</frameset>
</html>
尝试一下