这 两 个 特 性 的 值 均 是 用 逗 号 分 列 的 长 度. 长 度 可 以 是 绝
对 的 (给 出 像 素 数 或 屏 幕 的 百 分 比) 或 相 对 长 度, 意 味 着 用
"i*" 格 式, 这 里 的 "i" 是 一 个 整 数. 当 给 横 行 竖 列 分 配 空 间
的 时 候, 用 户 代 理 器 首 先 分 配 绝 对 的 长 度, 然 后 根 据 剩 下
的 横 行 竖 列 相 对 长 度 来 划 分. 值 "*" 等 价 于 "1*".
视 图 在 竖 列 中 从 左 到 右 建 立 而 对 于 横 行 则 是 从 上 至 下.
当 两 个 特 性 均 被 指 定 时, 视 图 在 第 一 横 行 中 从 左 到 右 建 立,
然 后 在 第 二 横?行 中 从 左 到 右 建 立 等.
第 一 个 例 程 在 垂 直 方 向 把 屏 幕 分 开 两 半
(就 是 说 上 面 一 半 下 面 一 半).
<FRAMESET rows="50%, 50%">
...the rest of the definition...
</FRAMESET>
下 一 个 例 程 建 立 三 个 竖 列: 第 二 列 有 一 个 组 合 宽 度 250 像
素 (例 如, 对 于 放 置 一 个 已 知 尺 寸 的 图 像 是 有 用 的). 然 后 第
一 列 分 到 剩 下 的 25% 而 第 3 列 分 到 75%.
<FRAMESET cols="1*,250,3*">
...the rest of the definition...
</FRAMESET>
下 一 个 例 程 建 立 一 个 2x3 的 栅 格.
<FRAMESET rows="30%,70%" cols="33%,34%,33%">
...the rest of the definition...
</FRAMESET>
对 于 下 一 个 例 程, 假 定 浏 览 器 视 窗 为 1000 像 素 高,?第 一 视?图
分 到 了 总 高 的 30% (300 像 素). 第 二 个 视 图 被 定 义 为 400 像 素
高. 这 样 就 剩 下 300 像 素 被 用 来 分 给 后 面 的 两 个 框. 第 四 个
框 指 定 为 "2*", 所 以 它 较 第 三 个 框 占 用 两 倍 的 高 度, 第 三 个
框 定 义 为 "*" (1*). 这 样 第 三 框 将 有 100 高 而 第 4 框 为 200 高.
<FRAMESET rows="30%,400,*,2*">
...the rest of the definition...
</FRAMESET>
总 和 不 为 100% 真 实 可 用 空 间 的 绝 对 长 度 可 以 被?用 户 代 理
器 调 整. 当 少 于 的 时 候, 剩 下 的 空 间 会 按 比 例 分 配 给 每 个
视 图. 当 超 过 的 时 候, 每 个 视 图 将 根 据 它 们 定 义 在 总 空 间
的 指 定 比 例 适 当 减 少.
嵌套框设置
框 可 以 嵌 套 任 意 级.
在 下 面 的 例 程 中, 外 部 的
FRAMESET
把 可 用 空 间 分 成 三 个 相 等 的 竖 列. 内 部 的
FRAMESET
则 把 第 二 个 区 域 分 成 两 个 不 同 高 度 的 横 行.
<FRAMESET cols="33%, 33%, 34%">
牋牋 ...contents of first frame...
牋牋 <FRAMESET rows="40%, 50%">
牋牋牋?...contents of second frame, first row...
牋牋牋?...contents of second frame, second row...
牋牋 </FRAMESET>
牋牋 ...contents of third frame...
</FRAMESET>
FRAME 元素
<!-- reserved frame names start with "_" otherwise starts with letter -->
<!ELEMENT FRAME - O EMPTY>
<!ATTLIST FRAME
?name牋牋牋?CDATA牋牋?#IMPLIED?-- name of frame for targetting --
?src牋牋牋牋 %URL牋牋牋 #IMPLIED?-- source of frame content --
?frameborder (1|0)牋牋?1牋牋牋牋 -- request frame borders? --
?marginwidth %Pixels牋?#IMPLIED?-- margin widths in pixels --
?marginheight %Pixels牋 #IMPLIED?-- margin height in pixels --
?noresize牋?(noresize) #IMPLIED?-- allow users to resize frames? --
?scrolling (yes|no|auto) auto牋牋 -- scrollbar or none --
?>
开 始 标 记: 需 要, 结 束 标 记: 禁 止
特 性 定 义
?
-
name = cdata
-
这 个 特 性 指 当 前 框 指 派 一 个 名 称. 这 个 名 称 可 能 是 后 来 的
链 接 的 目 标.
-
src = url
-
这 个 特 性 指 定 了 包 含 于 框 内 的 初 始 的 文 档 的 位 置.
-
noresize
-
在 显 示 时, 这 个 布 尔 值 告 诉 用 户 代 理 器 框 是 不 能 被 重 设 大
小 的.
-
scrolling = auto|yes|no
-
这 个 特 性 指 定 的 框 视 窗 的 滚 动 信 息. 可 能 的 值 为:
-
auto: 这 个 值 告 诉 用 户 代 理 器 在 必 要 的 时 候 提 供 滚
动 机 制. 这 是 缺 省 值.
-
yes: 这 个 值 告 诉 用 户 代 理 器 始 终 为 框 视 窗 提 供 滚
动 设 置.
-
no: 这 个 值 告 诉 用 户 代 理 器 不 为 框 视 窗 提 供 滚 动 设
置.
-
frameborder = 1|0
-
这 个 特 性 向 用 户 代 理 器 提 供 关 于 框 线 的 信 息. 可 能 的 值?为:
-
1: 这 个 值 告 诉 用 户 代 理 器 在 这 个 框 架 及 其 每 个 相
邻 框 架 之 间 画 一 条 分 隔 线. 这 是 缺 省 值.
-
0: 这 个 值 告 诉 用 户 代 理 器 不 要 在 这 个 框 架 及 其 每
个 相 邻 框 架 之 间 画 一 条 分 隔 线. 注 意 如 果 其 它 框 架 指 定 画
线, 这 个 分 隔 线 还 是 会 被 画 上 去.
-
marginwidth = length
-
这 个 值 指 定 了 在 框 架 左 缘 和 右 缘 与 内 容 之 间 留 出 的 空 间
的 总 量. 这 个 值 必 须 大 于 1. 缺 省 值 取 决 于 用 户 代 理 器.
-
marginheight = length
-
这 个 值 指 定 了 在 框 架 上 缘 和 下 缘 与 内 容 之 间 留 出 的 空 间
的 总 量. 这 个 值 必 须 大 于 1. 缺 省 值 取 决 于 用 户 代 理 器.
在 它 处 定 义 的 特 性
FRAME 元 素 定 义 了 单 个
视 窗 的 内 容 和 外 观.?!-- Scope of frame names here -->
设定在框中的初始文档
src 特 性 指 定 了
框 架 将 包 含 的 初 始 文 档. 框 的 内 容 不 可 能 存 在 于 框 定 义 的
同 一 篇 文 档 中.
下 面 的 例 程 例 示 了 HTML 文 档:
<HTML>
<FRAMESET cols="33%,33%,33%">
?<FRAMESET rows="*,200">
牋牋?<FRAME src="contents_of_frame1.html">
牋牋?<FRAME src="contents_of_frame2.gif">
?</FRAMESET>
?<FRAME src="contents_of_frame3.html">
?<FRAME src="contents_of_frame4.html">
</FRAMESET>
</HTML>
将 建 立 如 下 划 分 框 架:
--------------------------------------------
|Frame 1牋牋 |Frame 3牋牋牋 |Frame 4牋牋牋 |
|牋牋牋牋牋?|牋牋牋牋牋牋?|牋牋牋牋牋牋?|
|牋牋牋牋牋?|牋牋牋牋牋牋?|牋牋牋牋牋牋?|
|牋牋牋牋牋?|牋牋牋牋牋牋?|牋牋牋牋牋牋?|
|牋牋牋牋牋?|牋牋牋牋牋牋?|牋牋牋牋牋牋?|
|牋牋牋牋牋?|牋牋牋牋牋牋?|牋牋牋牋牋牋?|
|牋牋牋牋牋?|牋牋牋牋牋牋?|牋牋牋牋牋牋?|
|牋牋牋牋牋?|牋牋牋牋牋牋?|牋牋牋牋牋牋?|
-------------|牋牋牋牋牋牋?|牋牋牋牋牋牋?|
|Frame 2牋牋 |牋牋牋牋牋牋?|牋牋牋牋牋牋?|
|牋牋牋牋牋?|牋牋牋牋牋牋?|牋牋牋牋牋牋?|
|牋牋牋牋牋?|牋牋牋牋牋牋?|牋牋牋牋牋牋?|
--------------------------------------------
并 使 用 户 代 理 器 分 别 为 每 个 分 开 的 视 图 调 入 文 件.
非 法 例 程:
下 面 的 框 架 设 置 定 义 不 是 合 法 的 HTML 因 为 第 二 个 框 架
的 内 容 与 框 架 设 置 文 档 是 相 同 的.
<HTML>
<FRAMESET cols="50%,50%">
?<FRAME src="contents_of_frame1.html">
?<FRAME src="#anchor_in_same_document">
</FRAMESET>
<BODY>
...some text...
<H2><A name="anchor_in_same_document">Important section</A></H2>
...some text...
</BODY>
</HTML>
装饰一个框架
下 面 的 例 程 举 例 说明 装 饰 特 性
FRAME
的 用 法. 我 们 指 定 框 1 不 允 许 滚 动 条. 框 2 在 它 的 内 容 (初 始
的, 一 个图 像 文 件) 外 围 绕 空 白 并 且 此 框 不 能 重 置 尺 寸. 框
3 和 框 4 之 间 没 有 框 线. 框 1, 框 2 和 框 3 之 间 画 框 线 (通 过 缺
省).
<HTML>
<FRAMESET cols="33%,33%,33%">
?<FRAMESET rows="*,200">
牋牋?<FRAME src="contents_of_frame1.html" scrolling="no">
牋牋?<FRAME src="contents_of_frame2.gif"?
牋牋牋牋牋牋牋?marginwidth="10" marginheight="15"
牋牋牋牋牋牋牋?noresize>
?</FRAMESET>
?<FRAME src="contents_of_frame3.html" border="0">
?<FRAME src="contents_of_frame4.html" border="0">
</FRAMESET>
</HTML>
指定目标框架信息
特 性 定 义
?
-
target = cdata
-
这 个 特 性 定 义 了 在 哪 个 框 架 中 打 开 文 档
通 过
name 特 性 给
框 架 指 定 一 个 名 称, 作 者 可 以 通 过 别 的 元 素 定 义 来 作 为 "目
标" 来 指 向 它.
target
特 性 可 以 被?用 来 建 立 链 接 的 (
LINK) 元 素, 图 像 映
像 (
FORM) 来 设 置.
这 个 例 程 举 例 说 明 了 目 标 如 何 动 态 地 调
整 框 架 的 内 容. 首 先 我 们 在 文 档
frameset.html 中 定 义
一 个 框 架 设 置. 如 下:
<HTML>
<FRAMESET rows="50%,50%">
牋 <FRAME name="fixed" src="init_fixed.html">
牋 <FRAME name="dynamic" src="init_dynamic.html">
</FRAMESET>
</HTML>
然 后, 在
init_dynamic.html, 我 们 链 接 到 名 为"dynamic" 的
框 架.
<HTML>
<BODY>
...beginning of the document...
Now you may advance to?
牋?<A href="slide2.html" target="dynamic">slide 2.</A>
...more document...
You're doing great. Now on to
牋?<A href="slide3.html" target="dynamic">slide 3.</A>
</BODY>
</HTML>
激 活 链 接 在 命 名 为 "dynamic" 的 框 中 打 开 一 个 新 的 文 档 同 时
其 它 框 "组 合" 地 保 持 它 们 的 初 始 内 容.
注 意: 一 但 框 架 的 内 容 被 动 态 改 变, 先 前
的 框 架 定 义 不 再 反 映 每 个 框 架 的 真 实; 而 框 架 定 义 不 改 变.
目 前 还 没 在 在 URL 中 对 整 个 框 架 状 态 编 码 的 方 式. 还
有 , 许 多 用 户 代 理 器 不 允 许 用 户 对 框 架 来 分 配 书 签.
框 架 将 通 过 你 的 用 户 代 理 器 的 历 史 纪 录 来 建 立 前 行
与 后 行 导 航 对 于 用 户 则 更 难 了 .
设定链接的缺省目标
当 许 多 链 接 在 同 一 个 文 档 中 定 义 同 一 个 目 标 时, 可 以 只 定
定 一 次 目 标 并 通 过 每 个 元 素 的
target
特 性 来 分 发. 这 可 以 通 过
target 特 性 来
设 定.
我 们 回 到 先 前 的 例 程, 这 回 我 们 通 过 在
A
元 素 中 移 去.
<HTML>
<HEAD>
<BASE target="dynamic">
</HEAD>
<BODY>
...beginning of the document...
Now you may advance to <A href="slide2.html">slide 2.</A>
...more document...
You're doing great. Now on to?
牋牋牋 <A href="slide3.html">slide 3.</A>
</BODY>
</HTML>
目标语意
有 数 个 方 法 可 以 标 记 链 接 的 目 标 框. 这 里 我 们 定 义 他 们 的
相 互 作 用.
-
如 果 一 个 元 素 有 其 设 为 已 知 框 架 的 目 标 特 性, 当 这 个 元 素
被 激 活 时, 这 个 元 素 指 定 的 文 档 将 被 调 入 目 标 框 架.
-
如 果 一 个 元 素 没 有 target
特 性 而 BASE 元 素
来 决 定 目 标 框, 并 且 在 调?入 时 服 从 1 的 语 意.
-
如 果 元 素 和 target
特 性 的 机 制.
目标名称
除 了 下 面 列 示 的 保 留 名 称, 目 标 名 称 必 须 以 字 母 开 始 (a-zA-Z).
用 户 代 理 器 会 忽 略 其 它 任 何 目 标 名 称.
下 面 的 目 标 名 称 是 保 留 的 并 且 有 其 特 殊 含 义 meanings.
-
_blank
-
用 户 代 理 器 应 当 在 一 个 新 的, 无 名 视 窗 调 入 指 定 的 文 档
-
_self
-
用 户 代 理 器 应 当 在 指 向 这 个 目 标 的 无 素 的 相 同 的 框 架 中
调 入 文 档.
-
_parent
-
用 户 代 理 器 就 当 把 文 档 调 入 当 前 框 的 直 接 的 父 FRAMESET
框 中. 这 个 值 在 当 前 框 没 有 父 框 时 等 价 于_self.
-
_top
-
用 户 代 理 器 将 把 文 档 调 入 原 来 的 全 部 的 视 窗 中 (因 此 取 消
所 有 其 它 框 架). 这 个 值 等 价 于 当 前 框 没 有 你 框 时 的 _self.
轮换内容
我 们 强 烈 建 议 为 那 些 不 提 供 框 架 或 设 置 为 不 显 示 框 架 的
用 户 代 理 器 提 供 内 容 的 轮 换 版 本.
不 提 供 框 架 的 用 户 代 理 器 必 须 显 示 文 档 最 外 层 FRAMESET
的 BODY
除 非 当 前 设 置 为 不 显 示 框 架.
NOFRAMES 元素
<!--
燭he following is quite complicated because of the mixed
燾ontent model. However it's actually only meant to contain
爀ither BODY or %block.
?->
<!ELEMENT NOFRAMES - -
?#PCDATA,((BODY,#PCDATA)|
牋牋牋牋牋 (((%blocklevel)|%font|%phrase|%special|%formctrl),%block)))>
开 始 标 记: 需 要, 结 束 标 记: 需 在
NOFRAMES 元 指 定 的
内 容 只 有 在 框 架 不 显 示 的 时 候 才 显 示. 提 供 框 架 的 用 户 代
理 器 必 须 只 有 在 设 置 不 显 示 框 架 的 时 候 才 显 示 NOFRAMES
声 明 的 内 容. 不 提 供 框 架 的 用 户 代 理 器 必 须 在 作 何 情 况 下
NOFRAMES 的 内 容.
设 想 我 们 有 一 个 例?程 框 架 定 义 于 "top.html"
并 且 指 定 一 个 文 档 ("main.html") 和 一 个 与 主 文 档 内 容 相 关
的 特 殊 的 表 格 ("table_of_index.html"). 这 里 是 "top.html":
<HTML>
<FRAMESET cols="50%, 50%">
牋 <FRAME src="main.html">
牋 <FRAME src="table_of_index.html">
</FRAMESET>
</HTML>
在 用 户 代 理 器 不 显 示 框 架 的 时 候 用 户 读 取 "top.html" 会 发
生 什 么? 用 户 代 理 器 元 法 看 到 任 何 东 西 因 为 我 们 没 有 在 "top.html"
的
BODY
中 直 接 插 入 "table_of_index.html" 和 "main.html", 我 们 就 通 过
联 系 这 两 个 文 档 解 决 了 这 个 问 题, 但 我 们 也 会 引 起 提 供 框
架 的 用 户 代 理 器 取 得 两 次 相 同 的 文 档,?一 个 复 件 来 自 于 框
架 定 义 而 另 一 个 插 入 于
BODY.
更 经 济 的 办 法 是 在 "main.html" 顶 端 的
NOFRAMES
元 素 中 包 含 内 容 表 格: