学习如何创建框架

框架已经存在很长时间了,每个已知的浏览器都支持。虽然有些人认为它们很烦人,设计得很好,但在浏览网站时,框架可能非常有用。在本教程中,我们将讨论如何实现框架,并完成如何创建无边框框架,以及如何创建将内容加载到另一个框架的链接。

创建框架所需要知道的一切

所有帧都使用<frameset>标记创建。这基本上构成了“主”页面,它将“包含”用户实际看到的页面。带有<frameset>标记的“master”页面将替换<body>标记,这意味着您不要在此母版页内的任何位置使用<body>标记。这个母版页配有“放入”其中的各个页面。好的,让我们来看看这是如何完成的:以下示例创建一个包含两个框架的页面:

//母版页<HTML><HEAD><title>我的例子</ title></ HEAD><frameset cols =“30%,50%”><frame src =“page1.htm”><frame src =“page2.htm”></ frameset> </ html>
 

Page1.htm和Page2.htm作为“普通”html页面单独创建,并包含在此母版页中。我们使用关键字“cols”来表示我们要定义列框架。要改为创建行,只需使用关键字“rows”:

<html> <frameset rows =“50%,50%”><frame src =“page1.htm”><frame src =“page2.htm”></ frameset> </ html>
 

在这两个例子中,我们使用百分比作为宽度测量。您也可以谨慎使用像素,但是:

<html> <frameset cols =“100,200,340”><frame src =“page1.htm”><frame src =“page2.htm”><frame src =“page3.htm”></ frameset> </ html>
 

如果您将总宽度(100 + 200 + 340 = 640)相加,这将等于分辨率为640 * 480的屏幕宽度。大多数14‘屏幕都设置为这样,但人们如何使用(800 * 600)的屏幕分辨率?如果它们出现,您的框架页面将如何显示?好吧,浏览器别无选择,只能将宽度拉伸到640以上,以适应这个更大的屏幕。(根据用户的屏幕分辨率,使用百分比定义的所有帧都将被拉伸,(或缩小)。这可能会给开发人员带来麻烦,因为您永远不知道如何显示帧。这是否意味着你永远不应该使用像素?绝对不。让我们看看我们如何克服这个问题:

<HTML><frameset cols =“100,200,* ”><frame src =“page1.htm”><frame src =“page2.htm”><frame src =“page3.htm”></ FRAMESET></ HTML>
 

我们使用了一个特殊的关键字“*”,这意味着未定义。通过使用它,如果需要,只有这部分将被拉伸。另外两个,100和200,不会被无意中拉长。这样,您可以在右侧框架上保留所有页面的布局,这些布局不希望在左侧两个框架上拉伸,也可以使用它。

创建复杂的框架:

到目前为止,我们只创建了简单的所有列或所有行,帧。现在让我们继续前进到两者,我们呢?

定义具有列和行的帧的关键是在主页中放置多对<frameset> </ frameset>标记,每对包含“cols”或“rows”声明。这可能会有点棘手,所以我将尝试使用多个示例进行解释。让我们开始切片

<HTML><frameset cols =“50%,50%”> <frameset rows =“50%,50%”> <frame src =“page1.htm”><frame src =“page2.htm”></ frameset>  <frame src =“page3.htm”></ FRAMESET></ HTML>
 

好的,到底是怎么回事?首先,在蓝色中,我们定义了两列。然后,对于第一列,我们将更多切成两行。正如您所看到的,行和列“chunk”都以</ frameset>标记结尾,准确地说是两个。就像我说的那样,我们通过定义cols =“50%,50%”开始了“框架”。让我们看看如果我们首先定义行而不是反过来会发生什么:

//母版页<HTML><frameset rows =“50%,50%”><frameset cols =“50%,50%”><frame src =“page1.htm”><frame src =“page2.htm”></ FRAMESET><frame src =“page3.htm”></ FRAMESET></ HTML>
 

如您所见,完全不同的结果!困惑?这是一个值得记住的好规则:无论何时切割一个框架,无论是切割成一列还是一行,切片都会切片,直到它碰到“墙”。

复杂框架分步示例:

让我们充分利用上述规则。记住这条规则可以省去很多麻烦。好吧,假设我们想要创建一个这样的框架:

         
   

这可能看起来势不可挡,但如果你把寿司规则牢牢地放在脑海中,那你就没事了。我们该怎么做呢?从行开始?列?好吧,首先取出我们的刀,并记住,这把刀将继续切片,直到它撞到“墙”。如果我们从行开始,我们会有这样的事情:

 
 

这把寿司刀一直切割直到遇到障碍物,在这种情况下,是页面的边缘。如您所见,从使用行开始将无法实现我们期望的目标。

好吧,让我们从列开始:

<HTML><FRAMESETCOLS = “33%,17%,17%,17%,17%”></ FRAMESET></ HTML>
 

到现在为止还挺好。现在我们需要将第一列拆分为两行。请记住,这把瑞士刀不是很锋利,所以它不会穿过第一列的墙壁。

<HTML><FRAMESETCOLS = “33%,17%,17%,17%,17%”><frameset rows =“50%,50%”><frame src =“page1.htm”><frame src =“page2.htm”></ FRAMESET></ FRAMESET></ HTML>
 

如您所见,“行”部分嵌套在“cols”部分中,因为行是列声明的“子部分”。

让我们继续我们的寿司切碎,好吗?

<HTML><FRAMESETcols =“33%,17%,17%,17%,17%”>  <frameset rows =“50%,50%”><frame src =“page1.htm”><frame src =“page2.htm”></ FRAMESET><frame src =“page3.htm”><frame src =“page4.htm”></ FRAMESET></ HTML>
?

最后:

<HTML><FRAMESETcols =“33%,17%,17%,17%,17%”>  <frameset rows =“50%,50%”><frame src =“page1.htm”><frame src =“page2.htm”></ FRAMESET><frame src =“page3.htm”><frame src =“page4.htm”><frameset rows =“50%,50%”><frame src =“5.htm”><frame src =“6.htm”></ FRAMESET><frame src =“7.htm”></ FRAMESET></ HTML>
 

我知道这可能非常令人困惑,但是通过自己玩它来学习它的最佳方式...所以打开你的编辑器,尝试一下!好吧,我们已经了解了框架的整体结构 - 让我们继续看看我们可以添加到框架中的一些属性,并掌握从一个框架到另一个框架的链接和加载内容的艺术。

原文地址:https://www.cnblogs.com/cddehsy/p/9680162.html

时间: 2024-08-02 12:29:55

学习如何创建框架的相关文章

对比深度学习十大框架:TensorFlow 并非最好?

http://www.oschina.net/news/80593/deep-learning-frameworks-a-review-before-finishing-2016 TensorFlow 链接:https://www.tensorflow.org/ 对于那些听说过深度学习但还没有太过专门深入的人来说,TensorFlow 是他们最喜欢的深度学习框架,但在这里我要澄清一些事实. 在 TensorFlow 的官网上,它被定义为「一个用于机器智能的开源软件库」,但我觉得应该这么定义:Te

Entity Framework学习之创建Entity Framework数据模型

1.准备 Visual Studio 2013 .NET 4.5 Entity Framework 6 (EntityFramework 6.1.0 NuGet package) Windows Azure SDK 2.2 (可选) 2.Contoso University web应用程序 此应用程序允许用户 查看.更新student. course和instructor 信息: 网站UI样式是由内置模板生成的 3.新建MVC5 web应用程序 新建项目并命名为"ContosoUniversit

PHP再学习5——RESTFul框架 远程控制LED

0.前言 去年(2013年)2月第一次接触yeelink平台,当时该平台已经运行了一些时间也吸引了不少极客.试想自己也将投身IoT(物联网)行业,就花了些时间研究了它.陆陆续续使用和研究了一年,大致围绕两个问题展开——1.yeelink平台如何使用,2.如何构造一个功能简单些的yeelink平台.    [PHP学习笔记——索引博文] 本文将讨论如何构造一个简单restful架构平台(该平台有点像yeelink,不过功能比yeelink少的多),并结合树莓派实现LED的远程控制(网络控制).构建

如何学习新的框架(保存图片到相册)

一.点击查看大图 1.点击图片或按钮(点击查看大图按钮),modal出来一个控制器,显示大图片 2.怎么处理能让点击图片就能查看大图? 两种方法:1.给图片添加点按手势 2.给图片所在的view上添加 - (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event 2.1 添加点按手势 优点:适用于任何场景下,不受限制 缺点:代码量大 2.2 给图片所在view添加touchesEnded:方法 优点:能快

爬虫学习 10.scrapy框架简介和基础应用

爬虫学习 10.scrapy框架简介和基础应用 今日概要 scrapy框架介绍 环境安装 基础使用 今日详情 一.什么是Scrapy? Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板.对于框架的学习,重点是要学习其框架的特性.各个功能的用法即可. 二.安装 Linux: ``pip3 install scrapy Windows: ``a. p

爬虫学习 11.scrapy框架持久化存储

爬虫学习 11.scrapy框架持久化存储 基于终端指令的持久化存储 基于管道的持久化存储 今日详情 1.基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作. 执行输出指定格式进行存储:将爬取到的数据写入不同格式的文件中进行存储 scrapy crawl 爬虫名称 -o xxx.json scrapy crawl 爬虫名称 -o xxx.xml scrapy crawl 爬虫名称

Qt多线程学习:创建多线程

[为什么要用多线程?] 传统的图形用户界面应用程序都仅仅有一个运行线程,而且一次仅仅运行一个操作.假设用户从用户界面中调用一个比較耗时的操作,当该操作正在运行时,用户界面一般会冻结而不再响应.这个问题能够用事件处理和多线程来解决. [Linux有线程的概念吗?] 传统的UNIX系统也支持线程的概念,但一个进程里仅仅同意有一个线程,这样多线程就是多进程.Linux下的Posix线程(pthreads)是一种轻量级的进程的移植性实现,线程的调度由内核完毕,每一个线程都有自己的编号.假设使用线程,整体

Yaf零基础学习总结2-Yaf框架的安装

接着上一篇文章<Yaf零基础学习总结1-Yaf框架简介>我们对Yaf框架有那么一个大概的了解了,但是对于程序员来说,那些文字都是表面的,他们最想的就是开始敲代码了.当然这也是学习Yaf框架最有效的方法,敲得越多肯定学得越快,对于任何语言来说也是一样的,在写代码之前我们得把Yaf框架安装上. 相比于其它PHP框架,Yaf是作为PHP的一个扩展发行的,我们也知道他是基于C语言实现的,我们看不到它的PHP代码,当然有C语言背景的人可以去看下他的C源码.知道安装PHP扩展的人基本可以略过本文了,因为Y

Entity Framework 6.x 学习之 - 创建带连接表的实体模型 with Database First

1. 创建数据库表 CREATE TABLE [Album] ( [AlbumId] [int] NOT NULL IDENTITY(1, 1), [AlbumName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON [PRIMARY] GO ALTER TABLE [Album] ADD CONSTRAINT [PK_Album] PRIMARY KEY CLUSTERED ([AlbumId]) ON [PRIMARY] GO