框架能够为浏览器划分多个独立的部分或窗格,本章主要介绍:
1.创建具有多个框架的框架集文档
2.创建内联框架(<iframe>)
3.如何处理不能是用框架的用户
6.1框架集简介
创建框架网页时,是用框架集的DOCTYPE声明。用<frameset>代替<body>元素,讲网页划分为几行几列,然后是用<frame>代表每个框架。是用<noframes>元素,当用户浏览器不支持框架时,向用户提供一条信息。eg:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml/DTD/xhtml1-frameset.dtd">
<html>
<head><title>xx</title></head>
<frameset row="150, *, 100">
<frame src=""/>
<frame src=""/>
<frame src=""/>
<noframes>
<body>
用户不支持框架集时,向用户呈现的内容
</body>
</noframes>
</frameset>
</html>
6.2使用框架的时机
最好不使用框架
6.3<frameset>元素
cols特性:指定框架集中列的数量
rows特性:指定框架集中行的数量
还支持class、id、title、style等等特性
包含<frame>和<noframes>元素
6.3.1cols特性
可以指定像素和百分比,通配符“ * ”
6.3.2rows特性
可以指定像素和百分比,通配符“ * ”
6.3.3针对<frameset>元素的浏览器专用扩展
1.border特性:设置边框宽度
2.frameborder特性:是否在框架之间显示边框,取值0(no)或1(yes)
3.framespacing特性:只在IE中有效果,框架之间的空间量,默认为2
6.4<frame>元素
表示每个框架的内容。<frame>元素始终是个空元素(标签之间不包含内容)
6.4.1src特性
框架中的内容,可以链接本地文件,也可以是internet中的
6.4.2name特性
用于指定框架的名称,还没有id特性替换
6.4.3frameborder特性
是否显示框架边框,取值0(no)或1(yes)
6.4.4marginwidth和marginheight特性
marginwidth特性:指定框架边框的左边和右边与内容的间距,单位为像素
marginheight特性:指定框架边框的顶部和底部与内容的间距,单位为像素
6.4.5noresize特性
noresize特性:阻止用户调整框架大小,取值“ noresize ”(通过单击和拖动框架边框一般能改变框架的大小)
有点:有利于布局
缺点:超出边框内容,将无法查看
6.4.6scrolling特性
为框架提供滚动条,取值:
yes:框架必须包含滚动条,无论是否需要
no:不包含滚动条
auto:只在需要的时候,出现滚动条
6.4.7longdesc特性
提供一个链接,指向对框架内容详细描述的网页,W3C规定这个链接,不能是相同网页内的一个锚点
6.5<noframes>元素
浏览器不支持框架集时,将呈现<noframes>中的内容,<noframes>元素内,必须包含<body>元素
6.6创建框架之间的链接
内容框架设置name特性值,例如main_frame,然后在导航框架中的<a>元素加上target特性,并且值为main_frame。target还可以取值:
_self:将网页加载到当前框架中
_blank:打开一个新窗口
_parent:将网页加载到父窗口中。对于单框架集,父窗口就是当前窗口(整个浏览器页面)
_top:将网页加载到当前窗口(整个浏览器页面),替换任何当前框架
6.7使用<base>元素设置默认目标框架
相当于给<a>中的target全部加了<base target="xx" />(这个元素用于<head>中)中的xx
6.8框架集嵌套
6.9使用<iframe>创建内联框架或者浮动框架
使用<iframe>不必声明框架集(DOCTYPE中指定),且不能为空,即不能这么写<iframe src="" />(正确<iframe src=""></iframe>)
6.9.1src特性
1.<iframe>元素必须具有src特性
2.algin(弃用)
3.heigth和width
4.frameborder特性
设置边框宽度,0就是没有边框
5.longdesc
6.marginwidth和marginheight特性(同<frame>)
7.scrolling特性(同<frame>)
6.10本章小结
通常通过AJAX替换框架