框架---学习笔记04

第9章 框架

    9.1 框架概述

框架的作用,就是把浏览器窗口划分成若干个小窗口,每个小窗口可以分别显示不同的网页。这样在一个页面中可以同时显示不同网页内容,不同窗口的内容相互独立。框架的主要用途是导航,通常会在一个窗口中显示导航条,另外一个窗口则作为内容窗口,用于显示导航栏目的目标页面内容,窗口的内容会根据导航栏目的不同而动态变化。

html框架集与body同级,因此不能同时出现。框架的基本结构主要分为框架集<frameset>和框架<frame>两个部分,基本语法如下:

<frameset>

<frame/> <!-- 一个框架集中可以包括多个框架,每个框架窗口显示的页面由框架的 src 属性指定。 -->

<frame/>

...

</frameset>

    9.2 框架集标记<frameset>

定义浏览器窗口的分割方式、各分割窗口(框架)的大小以及设置框架边框的颜色和粗细等属性。主要属性有:

属性             说明

border         边框宽度,框架粗细

bordercolor    边框颜色

frameborder    是否显示边框(取值1, 0或yes,no)

framespacing   边框间距

rows 上下分割窗口 cols 左右分割窗口

 <frameset>标记对浏览器窗口的分割存在不同的方式,主要分为以下几种类型

 cols左右(水平)分割  <frameset cols="80,*">

● rows上下(垂直)分割  <frameset rows="80,*">

cols把框架分成左右两半,上下分割使用rows(分成上下两半)。每个框架的大小使用逗号隔开,最后一个使用*会把剩下的都分配给它

● 嵌套分割:左右上下分割都有。<frameset>里面再嵌套一个<frameset>标记

1     <frameset rows="100,*">
2         <frame/>
3         <frameset cols="20%,*">
4         <frame/>
5         </frameset>
6     </frameset>

效果图如下:

  9.3 框架标记<frame>

<frameset>分割得到的每个子窗口都需要显示不同的页面内容,这些页面内容由<frame>标记来设置。<frame>是个单标记,它必须放在框架集frameset中,<frameset>分割了几个子窗口就必须对应几个<frame>标记。<frame>标记的常用属性有:

属性            属性值           说明

src                             显示页面的URL地址

scrolling      yes、no、auto    是否显示滚动条

noresize                        禁止改变框架的尺寸大小

border         边框宽度,框架粗细

bordercolor    边框颜色

marginwidth    设置内容与框架窗口左右边框的距离

marginheight   设置内容与框架窗口上下边框的距离

基本语法:<frame src="01.html" name="test" />

<!-- src 框架的源文件地址,name 框架名(命名框架,以便超链接使用它作为目标窗口) -->

    9.4 不支持框架标记<noframes>

当用户浏览器版本太低不支持框架时,浏览器制作人员无法改变这一现象,所能做的只是告诉用户事实,把显示给用户看的文本信息放在<body></body>标记对之间;而<noframes>放在</frameset>标记后面。

demo:

<frameset cols="130,*"><frame src="menu.html"/><frame src="introduce.html"/></frameset>

<noframes>

<body>抱歉,您的浏览器版本太低,不支持框架,无法看到页面内容,请使用较新的浏览器来浏览。</body>

</noframes>

当用户浏览器版本太低不支持框架时,浏览器窗口将显示<body></body>标记对之间的文本内容,否则将显示<frameset></frameset>中各个框架的页面内容。

 9.5 浮动框架标记<iframe>(也有叫“内嵌框架”的)

浮动框架时一种特殊的框架页面,主要体现在这个框架时嵌套在一个HTML页面中,作为页面的一个组成部分。具有和<frame>一样的属性,也有自己的属性:

<iframe src="源文件地址" name="名" width="宽" height="高" align="对齐方式">

 9.6 框架与超链接

一般情况下在框架中的a链接使用target属性实现框架内文件跳转时:

href(一直不变,即指向打开的文件路径不需要变)

_self -> 自己框架页面打开

_blank -> 新页面打开

_top -> 顶级框架页面打开

_parent -> 到其父级框架页面打开

_framename -> 将我们想要打开的页面在指定的框架中打开

   demo:

首先,新建一个网页“框架集和框架.html”,为右侧框架窗口添加"name"标识,输入下面的内容:

 1     <!DOCTYPE html>
 2     <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>框架集frameset和框架frame</title>
 6     </head>
 7     <frameset cols="10%,*">
 8     <frame src="menu.html" />
 9     <frame  src="http://qq.com" name="RightFrame" />
10     </frameset>
11     </html>

然后,新建一个网页“menu.html”,在左侧窗口中,设置"target"属性显示的窗口名,输入下面的内容:

 1     <!DOCTYPE html>
 2     <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>Document</title>
 6     </head>
 7     <body>
 8         <a href="http://qq.com/"  target="RightFrame">qq</a>
 9         <a href="http://baidu.com" target="RightFrame">百度</a>
10         <a href="http://taobao.com" target="RightFrame">淘宝</a>
11     </body>
12     </html>

如下图,刚开始打开这个“框架集和框架.html”这个网页时,显示的效果如下:

左边相当于是一个菜单,右边是显示效果,当你单击“百度”或者“淘宝”时都可以链接到相应网站。

这就是我使用frameset和frame来实现的菜单功能。

下面,讲一下框架与超链接。在"menu.html"中插入下面的代码:

    <span><a href="http://qq.com" target="_parent">在父框架中打开qq</a></span>

这个时候,在浏览器中打开”框架集和框架.html“,单击”在父框架中打开qq“,这个时候,你会发现,整个网页直接转向了qq首页。”框架集和框架.html“就相当于”menu.html“的父框架,当”menu.html“中的a指定了target="_parent"时,就会直接在”框架集和框架.html“中打开这个网页。对于target="_self"或者其它效果就交给你们自己去修改玩玩。

时间: 2024-11-06 07:11:54

框架---学习笔记04的相关文章

windows下scrapy框架学习笔记—&#39;scrapy&#39; 不是内部或外部命令

最近几天在深入的学习scrapy框架,但是装完各种需要的基础包之后却发现scrapy命令在别的路径下都用不了,我一开始是把python安装在F:\Python路径下的,安装了scrapy后它默认都会安装在这个路径下,scrapy在路径F:\Python\Scripts路径下,我的scrapy命令只能在此路径下用,因此创建什么工程也都只能在此文件下. 想了一下它的工作原理:它在F:\Python\Scripts路径下,就会在Scripts文件下存在一个scrapy批处理文件,那么在DOS下想要命令

JavaSE中线程与并行API框架学习笔记——线程为什么会不安全?

前言:休整一个多月之后,终于开始投简历了.这段时间休息了一阵子,又病了几天,真正用来复习准备的时间其实并不多.说实话,心里不是非常有底气. 这可能是学生时代遗留的思维惯性--总想着做好万全准备才去做事.当然,在学校里考试之前当然要把所有内容学一遍和复习一遍.但是,到了社会里做事,很多时候都是边做边学.应聘如此,工作如此,很多的挑战都是如此.没办法,硬着头皮上吧. 3.5 线程的分组管理 在实际的开发过程当中,可能会有多个线程同时存在,这对批量处理有了需求.这就有点像用迅雷下载电视剧,假设你在同时

JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue

前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的文章,大多都是以罗列记忆点的形式书写的,没有谈论实现细节和逻辑原理.作为个人笔记无可厚非,但是并不利于他人学习.希望能通过这种比较“费劲”的讲解,帮助我自己.也帮助读者们更好地学习Java.掌握Java. 无论你跟我一样需要应聘,还是说在校学生学习Java基础,都对入门和进一步启发学习有所帮助.(关

Android自定义View学习笔记04

Android自定义View学习笔记04 好长时间没有写相关的博客了,前几周在帮学姐做毕设,所以博客方面有些耽误.过程中写了一个类似wp的磁贴的view,想再写个配套的layout,所以昨天看了一下自定义viewGroup的相关知识-晚上睡觉想了一下可行性不是很高-代码量还不如直接自己在xml上写来得快,速度上也是个问题.今天看了一下张鸿洋老师的Android 自定义View (三) 圆环交替 等待效果这篇博文,再加上前一段时间看到的一幅图,结合之前写的一个圆形imageView的实现博文And

SuperSocket框架学习笔记4-SuperWebSocket---使用SubCommandBase

首先下载所需要的 DLL http://download.csdn.net/detail/wai2dance123/7389285 或者参见第2章  到SuperSocket官网下载 http://www.cnblogs.com/xmcrew/p/3747354.html 1,新建一个 .NET4.0 控制台应用程序 命名为 DiyServers 添加以下引用 将默认的Program.cs改名为  DiyServers.cs 并添加以下命名空间 2,写自己的DSession和DServer继承自

JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序

前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和ArrayList.HashSet.LinkedList等等.根据核心框架图,相信我们都已经对Collection这个JavaSE中最常用API之一有一个较为全面的认识. 这个学习过程,还可以推及到其他常用开源框架和公司项目的学习和熟悉上面.借助开发工具或说明文档,先是对项目整体有一个宏观的认识,再根

j2ee开发之Spring2.5框架学习笔记

Spring 2.5框架学习笔记 1.是一个开源的控制反转IOC和面向切面AOP的容器框架 2.IOC控制反转 public class PersonServiceBean { private PersonDao personDao = new PersonDao(); publiv void save(Person person){ personDao.save(person); } } 控制反转:应用本身不负责依赖对象personDao的创建以及维护,依赖对象的创建以及维护是由外部容器负责的

【OpenGL 学习笔记04】顶点数组

通过之前的学习,我们知道,如果要绘制一个几何图形,那就要不断的调用绘制函数,比如绘制一个20条边的多边形,起码要调用22条函数(包含glBegin和glEnd). 所以OpenGL提供了一系列的顶点数组函数减少函数调用的次数来提高性能.而且使用顶点还可以避免顶点共享的冗余处理. 1.简单示例 先来回顾一下之前我们是怎么画直线的: void drawOneLine(GLfloat x1,GLfloat y1,GLfloat x2,GLfloat y2) { glBegin(GL_LINES); g

SWIFT学习笔记04

1.在实际编译时,Swift 编译器会优化字符串的使用,使实际的复制只发生在绝对必要的情况下,这意味着您将字符串作为值类型的同时可以获得极高的性能. 2.for character in "Dog!" { println(character) } // D // o // g // ! 3.通过标明一个Character类型注解并通过字符字面量进行赋值,可以建立一个独立的字符常量或变量: let yenSign: Character = "¥" 4.计算字符数量 l