frameset的用法

本文深入探讨了HTML中的frameset、frame和iframe标签的使用方法,包括属性介绍、示例代码及注意事项,帮助读者理解如何在网页中创建和管理框架布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、frameset

1. 属性

①border

设置框架的边框粗细。

②bordercolor

设置框架的边框颜色。

③frameborder

设置是否显示框架边框。设定值只有0、1;0 表示不要边框,1 表示要显示边框。

④cols

纵向分割页面。其数值表示方法有三种:“30%、30(或者30px)、*”;数值的个数代表分成的视窗数目且数值之间用“,”隔开。“30%”表示该框架区域占全部浏览器页面区域的30%;“30”表示该区域横向宽度为30像素;“*”表示该区域占用余下页面空间。例如:cols="25%,200,*" 表示将页面分为三部分,左面部分占页面30%,中间横向宽度为200像素,页面余下的作为右面部分。

⑤rows

横向分割页面。数值表示方法与意义与cols相同。

⑥framespacing

设置框架与框架间的保留的空白距离。

2. 用例

<frameset cols="213,*" frameborder="no" border="0" framespacing="0">

注意1:

cols与rows两属性尽量不要同在一个<frameset>标签中使用。若要实现下图架构,代码正确写法为:

Frameset使用教程

1 <frameset rows="59,*" cols="*" frameborder="no" border="0" framespacing="0">
2   <frame src="???" name="topFrame" scrolling="No" noresize="noresize" id="topFrame"/>
3   <frameset cols="213,*" frameborder="no" border="0" framespacing="0">
4     <frame src="???" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame"/>
5     <frame src="???" name="mainFrame" id="mainFrame"/>

 

【即,若想即使用cols又使用rows,可利用frameset嵌套实现】

注意2:

<frameset cols="40%,*,*">

意思是:第一个框架占整个浏览器窗口的40%,剩下的空间平均分配给另外两个框架。

<frameset cols="*,*,*,*">

意思是:浏览器窗口等分为四部分。

 

二、frame

1. 属性

①name

设置框架名称。此为必须设置的属性。

②src

设置此框架要显示的网页名称或路径。此为必须设置的属性。

③scrolling

设置是否要显示滚动条。设定值为auto, yes, no。

④bordercolor

设置框架的边框颜色。

⑤frameborder

设置是否显示框架边框。设定值只有0、1;0 表示不要边框,1 表示要显示边框。

⑥noresize

设置框架大小是否能手动调节。

⑦marginwidth

设置框架边界和其中内容之间的宽度。

⑧marginhight

设置框架边界和其中内容之间的高度。

⑨width

设置框架宽度。

⑩height

设置框架高度。

2. 用例

<frame src="???" name="topFrame" scrolling="No" noresize="noresize" marginwidth="10" marginhight="10" width="400" height="800" />

三、iframe

是浮动的框架(frame),其常用属性与frame类似,其他的主要有以下(相同的就不列举了)

1. 属性

①align

设置垂直或水平对齐方式

②allowTransparency

设置或获取对象是否可为透明。

2. 用例

<iframe name="123" align="middle" marginwidth="0" marginheight=0 src="???" frameborder="0" scrolling="no" width="776" height="2500"></iframe>

注意:

iframe标签与frameset、frame标签的验证方法不同,是XHTML 1.0 Transitional。且iframe是放在body标签之内,而frameset、frame是放在body标签之外。

 

四、综合示例

 

 1 <html>
 2 <head>
 3 <title>综合示例</title>
 4 </head>
 5 <frameset cols="25%,*">
 6 <frame src="menu.html" scrolling="no" name="Left">
 7 <frame src="page1.html" scrolling="auto" name="Main">
 8 <noframes>
 9 <body>
10 <p>对不起,您的浏览器不支持“框架”!</p>
11 </body>
12 </noframes>
13 </frameset>
14 </html>

 

 

1 <html>
2 <head>
3 <title>menu</title>
4 </head>
5 <body>
6 <a href="page1.html"  target="Main">内容1</a>
7 <a href="page2.html"  target="Main">内容2</a>
8 </body>
9 </html>

 

 

【说明】

<noframes></noframes>标志对也是放在<frameset></frameset>标志对之间,用来在那些不支持框架的浏览器中显示文本或图像信息。在此标志对之间先紧跟<body></body>标志对,然后才可以使用我们熟悉的任何标志。

 

 

 

 

 

index.html 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>首页</title>
</head>
<frameset rows="120,*" cols="*" frameborder="no" border="0" framespacing="0">
  <frame src="top.html" name="topFrame" scrolling="No" noresize="noresize" id="topFrame"
title="topFrame" />
  <frameset cols="120,*" frameborder="no" border="0" framespacing="0">
    <frame src="left.html" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame" />
    <frame src="main.html" name="mainFrame" id="mainFrame" title="mainFrame" />
  </frameset>
</frameset>
<noframes><body>
</body></noframes>
</html>

left.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=gb2312" />
<title>我的首页</title>
<style type="text/css">
body {
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
}
.dh{
    margin:0;
    padding:0;
    list-style-type: none;
    }
.dh .dh1 {
    background-color: #39F;
    height: 30px;
    margin-bottom:1px;
    font-size:18px;
    text-align:center;
    line-height: 30px;
    overflow:hidden;
}
.dh .dh1:hover {
    height:150px;
}
.dh2{
    margin:0;
    padding:0;
    list-style-type:none;
     
    }
.dh2 li{
    height:30px;
    text-align:center;
    line-height:30px;
    background-color: #0F9;
    }
.dh2 li a {
    text-decoration: none;
    color: #333;
    display: block;
    height: 30px;
    width: 110px;
}
.dh2 li:hover{
    background:#FF3;
 
    }
</style>
 
</head>
 
<body>
<table width="110" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td height="800" valign="top">
    <ul class="dh">
        <li class="dh1">正规学习
  <ul class="dh2">
                <li><a href="xs2.html" target="mainFrame">语文</a></li>
                <li><a href="xs3.html" target="mainFrame">数学</a></li>
                <li><a href="xs2.html" target="mainFrame">电子商务</a></li>
                 <li><a href="xs3.html" target="mainFrame">互联网</a></li>
                 
          </ul>
         
        </li>
        <li class="dh1">科幻小说
          <ul class="dh2">
                <li><a href="xs2.html" target="mainFrame">宇宙</a></li>
                <li><a href="xs2.html" target="mainFrame">哲学</a></li>
                <li><a href="xs2.html" target="mainFrame">电子商务</a></li>
                <li> <a href="xs3.html" target="mainFrame">互联网</a></li>
          </ul>
        </li>
        <li class="dh1">武侠小说
  <ul class="dh2">
                <li><a href="xs3.html" target="mainFrame">语文</a></li>
            <li><a href="xs2.html" target="mainFrame">数学</a></li>
                <li><a href="xs3.html" target="mainFrame">电子商务</a></li>
                <li><a href="xs3.html" target="mainFrame">互联网</a></li>
          </ul>
        </li>
        <li class="dh1">言情小说
          <ul class="dh2">
                <li><a href="xs2.html" target="mainFrame">语文</a></li>
                <li><a href="xs3.html" target="mainFrame">数学</a></li>
                <li><a href="xs2.html" target="mainFrame">电子商务</a></li>
                <li><a href="xs3.html" target="mainFrame">互联网</a></li>
          </ul>
        </li>
    </ul>
     
    </td>
  </tr>
</table>
 
</body>
</html>

top.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=gb2312" />
<title>无标题文档</title>
<style type="text/css">
.bgx {
    border-bottom-width: 2px;
    border-bottom-style: solid;
    border-bottom-color: #00F;
}
body {
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
}
.qqxf {
    font-size: 14px;
    color: #666;
    text-align: center;
}
.zhmm {
    width: 100px;
}
.xwz {
    font-size: 14px;
}
.denglu {
    width: 100px;
    height: 25px;
}
</style>
</head>
 
<body>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="bgx">
  <tr>
    <td width="400" height="115" bgcolor="#BFF2FF"><img src="images/suoxiaob.png" width="364" height="72" /></td>
    <td bgcolor="#BFF2FF"><table width="550" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td width="157"><img src="image\qq.png" width="149" height="34" /></td>
        <td width="20" rowspan="2"><hr width="1" size="50" /></td>
        <td width="179">账号:
          <label for="bs"></label>
          <input name="bs" type="text" class="zhmm" id="bs" placeholder="用户名/email"/></td>
        <td width="104"><input type="checkbox" name="1" id="1" />
          <label for="1" class="xwz">自动登录</label></td>
        <td width="20" rowspan="2"><hr width="1" size="50" /></td>
        <td width="70" class="xwz">找回密码</td>
      </tr>
      <tr>
        <td height="30" class="qqxf">只需一步,快速开始</td>
        <td>密码:
          <label for="mm"></label>
          <input name="mm" type="password" class="zhmm" id="mm" /></td>
        <td><input name="DL" type="submit" class="denglu" id="DL" value="登录" /></td>
        <td class="xwz">文友注册</td>
      </tr>
    </table></td>
  </tr>
</table>
<div></div>
</body>
</html>

main.html

<!doctype html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>轮播图</title>
    <style type="text/css">
        *{ padding:0; margin:0; list-style:none; border:0;}
        .all{
            width:500px;
            height:200px;
            padding:7px;
            border:1px solid #ccc;
            margin:100px auto;
            position:relative;
        }
        .screen{
            width:500px;
            height:200px;
            overflow:hidden;
            position:relative;
        }
        .screen li{ width:500px; height:200px; overflow:hidden; float:left;}
        .screen ul{ position:absolute; left:0; top:0px; width:3000px;}
        .all ol{ position:absolute; right:10px; bottom:10px; line-height:20px; text-align:center;}
        .all ol li{ float:left; width:20px; height:20px; background:#fff; border:1px solid #ccc; margin-left:10px; cursor:pointer;}
        .all ol li.current{ background:yellow;}
 
        #arr {display: none;}
        #arr span{ width:40px; height:40px; position:absolute; left:5px; top:50%; margin-top:-20px; background:#000; cursor:pointer; line-height:40px; text-align:center; font-weight:bold; font-family:'黑体'; font-size:30px; color:#fff; opacity:0.3; border:1px solid #fff;}
        #arr #right{right:5px; left:auto;}
    </style>
 
    <script>
        window.onload = function () {
            //需求:无缝滚动。
            //思路:赋值第一张图片放到ul的最后,然后当图片切换到第五张的时候
            //     直接切换第六章,再次从第一张切换到第二张的时候先瞬间切换到
            //     第一张图片,然后滑动到第二张
            //步骤:
            //1.获取事件源及相关元素。(老三步)
            //2.复制第一张图片所在的li,添加到ul的最后面。
            //3.给ol中添加li,ul中的个数-1个,并点亮第一个按钮。
            //4.鼠标放到ol的li上切换图片
            //5.添加定时器
            //6.左右切换图片(鼠标放上去隐藏,移开显示)
            var screen = document.getElementById("screen");
            var ul = screen.children[0];
            var ol = screen.children[1];
            var div = screen.children[2];
            var imgWidth = screen.offsetWidth;
 
            //2
            var tempLi = ul.children[0].cloneNode(true);
            ul.appendChild(tempLi);
            //3
            for(var i = 0; i < ul.children.length - 1; i++) {
                var newOlLi = document.createElement("li");
                newOlLi.innerHTML = i + 1;
                ol.appendChild(newOlLi);
            }
            var olLiArr = ol.children;
            olLiArr[0].className = "current";
            //4
            for(var i = 0, len = olLiArr.length; i < len; i++) {
                olLiArr[i].index = i;
                olLiArr[i].onmouseover = function (ev) {
                    for(var j = 0; j < len; j++) {
                        olLiArr[j].className = "";
                    }
                    this.className = "current";
                    key = square = this.index;
                    animate(ul, -this.index * imgWidth);
                }
            }
            //5
            var key = 0;
            var square = 0;
            var timer = setInterval(autoPlay, 1000);
            screen.onmouseover = function (ev) {
                clearInterval(timer);
                div.style.display = "block";
            }
            screen.onmouseout = function (ev) {
                timer = setInterval(autoPlay, 1000);
                div.style.display = "none";
            }
            //6
            var divArr = div.children;
            divArr[0].onclick = function (ev) {
                key--;
                if(key < 0) {
                    ul.style.left = -(ul.children.length-1) * imgWidth + "px";
                    key = 4;
                }
                animate(ul, -key * imgWidth);
                square--;
                if(square < 0) {
                    square = 4;
                }
                for(var k = 0; k < len; k++) {
                    olLiArr[k].className = "";
                }
                olLiArr[square].className = "current";
            }
            divArr[1].onclick = autoPlay;
            function autoPlay() {
                key++;
                //当不满足下面的条件是时候,轮播图到了最后一个孩子,进入条件中后,瞬移到
                //第一张,继续滚动。
                if(key > ul.children.length - 1) {
                    ul.style.left = 0;
                    key = 1;
                }
                animate(ul, -key * imgWidth);
                square++;
                if(square > 4) {
                    square = 0;
                }
                for(var k = 0; k < len; k++) {
                    olLiArr[k].className = "";
                }
                olLiArr[square].className = "current";
            }
            function animate(ele,target){
                    clearInterval(ele.timer);
                    var speed = target>ele.offsetLeft?10:-10;
                    ele.timer = setInterval(function () {
                        var val = target - ele.offsetLeft;
                        ele.style.left = ele.offsetLeft + speed + "px";
                        if(Math.abs(val)<Math.abs(speed)){
                            ele.style.left = target + "px";
                            clearInterval(ele.timer);
                        }
                    },10)  
            }
 
      }

    </script>
</head>
 
<body>
<div class="all" id='all'>
    <div class="screen" id="screen">
        <ul id="ul">
            <li><img src="images1.jpg" width="500" height="200" /></li>
            <li><img src="images2.jpg" width="500" height="200" /></li>
            <li><img src="images3.jpg" width="500" height="200" /></li>
            <li><img src="images4.jpg" width="500" height="200" /></li>
            <li><img src="images5.jpg" width="500" height="200" /></li>
        </ul>
        <ol>
 
        </ol>
        <div id="arr">
            <span id="left"><</span>
            <span id="right">></span>
        </div>
    </div>
</div>
</body>
</html>

效果图如下:图片没显示是因为没放图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值