html框架

不知道为什么,html的框架是我的一个盲点。

 

框架将浏览器分为多个不同的区域,每个区域都可以显示独立,课滚动的页面。

我现在将框架理解成一般的表格。

 

框架的基本结构:

框架集frameset和框架frame

框架集<frameset>取代页面的<body>标签,也就是<frameset>和<body>不能共存。当然这样可能引发一些浏览器器的支持问题。

简单的demo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>body</title>
</head>

<frameset cols="20%,*">
<frame src="body_left.html" />
<frame src="body_right.html" />
</frameset>
</html>
View Code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head>

<frameset rows="200,60%,*">
<frame src="head.html" />
<frame src="body.html" />
<frame src="foot.html" />
</frameset><noframes></noframes>
</html>
View Code

test.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head>

<frameset rows="200,60%,*">
<frame src="head.html" />
<frame src="body.html" />
<frame src="foot.html" />
</frameset><noframes></noframes>
</html>

body.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>body</title>
</head>
<frameset cols="20%,*">
<frame src="body_left.html" />
<frame src="body_right.html" />
</frameset>
<!--
<body>
body.html
</body>
-->
</html>
View Code

使用frameset做到下面的效果最好是使用frameset的嵌套。其实frameset你也可以把它想象成一个基础的frame。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head>

<frameset rows="200,60%,*">
    <frame src="head.html" />
    <frameset cols="20%,*">
        <frame src="body_left.html" />
        <frame src="body_right.html" />
    </frameset>
    <frame src="foot.html" />
</frameset><noframes></noframes>
</html>
View Code

 

达到上面的效果,使用标签的嵌套

 

frameset的属性:

rows:当你的页面使用框架集分为几行的格子的时候,在frameset标签中加上rows属性rows中每一行的大小用逗号隔开,里面的值可以用像素、百分比、*,

*一般放在末尾,表示页面剩下的空间

<frameset rows="300,20%,*" border="" bordercolor="" >
</frameset>

 

border和bordercolor属性就不多说了。

cols属性设置框架集中的列,用法与rows类似,cols和rows一般不同时使用,达到效果要使用框架的镶嵌。同时使用得到的分块成了表格格式一样

 

<noframes>标签

由于frameset标签取代了body标签,所以可能引发浏览器的支持问题,无法显示框架内容。noframes是一个双标签,是framset的子标签。当浏览器不支持框架网页的时候,会自动寻找并显示<noframes>里面的内容

<frameset cols="100,*">
    <frame/>
    <frame/>
    <noframes>
很抱歉,您的浏览器不支持框架显示内容。
    </noframes>
</frameset>

 

frame的属性:

src:框架的内容对应的页面的地址

name:(框架间的跳转)frame的名称,自定义,作为一种标志,可以被其他框架间页面中的<a>标签的target引用给其他框架(不过引用的a标签和target的链接地址应该在同一框架集内吧,要不然无法达到同步,尝试了一下,不是同一框架集没做到)

引用demo:

<frameset rows="200,60%,*">
<frame src="head.html" name="head" />
<frame src="body.html" name="body" />
<frame src="foot.html" name="foot" />
<noframes>对不起,您的浏览器不支持框架</noframes>
</frameset>

<body>
foot.html
<a href="http://www.baidu.com" target="body">给body里面百度的内容</a>
</body>

<frameset cols="20%,*">
<frame src="body_left.html" />
<frame src="body_right.html" />
</frameset>

效果:

 

noresize属性:

有些时候虽然在框架集中分配空间的给定了像素值,但是有时候框架的大小还是可以改变,为了固定框架的大小,我们使用frame的noresize属性

<frame src="http://www.163.com" noresize="noresize" />

 

marginwidth和marginheight和frameborder属性

这个不多说了

 

内联框架iframe:

内联框架的特点:可以和body共存。

页面中嵌入一个框架窗口,也称为浮动框架

属性和普通框架一致,用法也一致。

demo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
给body里面百度的内容<br/>
<iframe src="foot.html" name="ifram" />
</body>
</html>

效果:

 

iframe比frameset的优势:

1、在body里面使用

2、在body中的任何位置都可以使用

posted @ 2016-04-27 12:20  guodaxia  阅读(278)  评论(0编辑  收藏  举报