iframe

iframe属性的用法

<iframe>标签规定一个内联框架。内联框架可以在当前的HTML文档中插入框架,框架内可以链接另一个页面

它是 一个围堵标记,但围着的字句只有在浏览器不支援 iframe 标记时才会显示。

<body>
<iframe src="https://www.baidu.com"></iframe>
</body>

注意:所有的浏览器都支持iframe属性,可以把需要的文本放置在<iframe></iframe> 之间,这样就可以应对无法理解 <iframe> 的浏览器。

要使用css来为<iframe>定义样式

iframe属性的取值

  • frameborder 规定是否显示框架周围的边框,取值为1或0。(取值为1有边框,取值为0没有边框)也可以是yes或no。
  • height / width 规定框架的高度和宽度(取值px或%)
  • src 规定在框架中所显示的文档的URL
  • scrolling 规定是否在框架中显示滚动条(取值yes显示,no不显示,auto自动判断)
  • align 规定框架的对齐方式(取值left、right、top、middle、bottom)
  • name 规定内联框架的名称
  • marginheight 框架顶部和底部的外边距(取值pixel像素)
  • marginwidth 框架左侧和右侧的外边距(取值pixel像素)

iframe的书写格式

里面的内容只有在浏览器不支持iframe标记时才会显示出来

<iframe src="iframe.html" height="100px" width="300px" marginheight=1px marginwidth=1px name="ibox" align="middle" frameborder=1>哈哈啊</iframe>

iframe支持HTML全局属性,也支持事件属性

frameset

frameset的用法(框架模板)

frameset可以定义一个框架集。被用来组织多个框架,每一个框架都有着独立的文档。在frameset的简单应用中,frameset使用cols或rows属性来规定在框架中存在多少行多少列。

<html>
<head></head>
<frameset>
<frame src="">
<frame src="">
</frameset>
</html>

!注意:利用frameset和frame可以把网页制作成所需要的不同大小的框架,可以用来布局。

不能与 <frameset></frameset> 标签一起使用 <body></body> 标签。当需要为不支持框架的浏览器添加一个<noframes>标签时,则必须在<noframes>中嵌套<body>标签,那样<noframes>标签中的内容才会被显示出来。

frameset属性的属性值

cols 定义框架集中的列的数目和尺寸(取值px、% 和 *)

rows 定义框架集中的行的数目和尺寸(取值px、% 和 *)

注意:这两个属性都接受用引号括起来并用逗号分开的值列表,这些数值指定了框架的绝对(像素点)或相对(百分比或其余空间)宽度(对列而言),或者绝对或相对高度(对行而言)。这些属性值的数目决定了浏览器将会在文档窗口中显示多少行或列的框架。

实例:

1、构建三行框架(因为rows有三个值),三行的高度分别为150px,300px,150px(三行高度为1:2:1)

<frameset rows="150,300,150">

除非浏览器窗口正好为600px,否则浏览器就会自动按照(三行高度比例1:2:1)延伸或压缩第一个和最后一个框架,上下两个框架占据1/4的窗口空间;中间的框架会占据剩下1/2的空间。

<frameset rows="25%,50%,25%">

如果设置的百分比加起来不是100%(如20%,40%,20%),浏览器也会按照之间的比例进行重新给出尺寸以消除差异。

2、在<frameset>标签的cols和rows值中加入星号 * 的用法。*指示浏览器要在相邻的框架放入框架集之后,剩下的空间分配给各自的行或列。

会生成有固定宽度100px的框架列,和另一个框架列,这个框架列会占据框架集中剩下的所有空间。

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

3、对多个列或行属性值使用星号。在这样的情况下,相应的行或列将对可用空间进行等分。

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

生成三列,中间一列固定宽度100px,左右两侧分别生成尺寸相同的两列。等分剩下的空间。

4.如果在星号前放置一个整数值,相应的行或列就会相对地获得更多的可用空间

<frameset rows="100,3*,*,*">

生成四行框架,第一行框架集的10%。浏览器把框架集剩下的空间3/5分配给第二个框架,剩下两行各分1/5.

补充noframes标签

当浏览器完全显示不出这个框架时,页面就会显示出<noframes></noframes>内的内容。<noframes> 元素位于 <frameset> 元素内部。

<frameset>如果浏览器有能力处理框架,就不会显示出 frameset 元素中的文本。</frameset>

如果希望在<frameset>标签中使用<noframes>标签,就必须要把<noframes>的内容包含在<body></body>中;

<frameset cols = "25%, 25%,*">
<noframes>
<body>Your browser does not handle frames!</body>
</noframes> <frame src ="venus.htm" />
<frame src ="sun.htm" />
<frame src ="mercur.htm" />
</frameset>

frame

frame的作用

<frame>定义frameset中的一个特定的窗口。只设定某一个框架窗口的特定属性。

注意:<frame>标签一定要和<frameset>标签一起合用。frame是自闭合标签没有结束标签。

<html>
<frameset cols="25%,50%,25%">
<frame src=" " />
<frame src=" " />
<frame src=" " />
</frameset>
</html>

frame标签的属性

  • frameborder 规定是否显示框架周围的边框,取值为1或0。(取值为1有边框,取值为0没有边框)也可以是yes或no。
  • noresize 规定用户无法调整框架的大小(noresize="noresize")
  • src 规定在框架中所显示的文档的URL
  • scrolling 规定是否在框架中显示滚动条(取值yes显示,no不显示,auto自动判断)
  • name 规定内联框架的名称
  • marginheight 框架顶部和底部的外边距(取值pixel像素)
  • marginwidth 框架左侧和右侧的外边距(取值pixel像素)

三、实例

1、不能调整框架的大小

设置了noresize属性的框架不可以调整大小,当把鼠标移动到框架的表上时会发现边框不可以移动。

<html>
<frameset>
<frame src="nav.html" noresize="noresize"/>
<frame src="main.html"/>
<frame src="content.html"/>
</frameset>
</html>

总结

经过上面的分析,总结iframe、frame、frameset三者之间的区别和联系。

1、frame不能脱离frameset单独使用,而iframe可以单独使用

2、frameset不能放在body标签中,frame嵌套在frameset中如果放在body中不能正常显示。(frameset和frame只规定了框架如何划分,不会显示任何内容,所以不需要放在body中)

3、iframe嵌套在frameset标签中,则必须放在body标签中,否则无法显示。(iframe用来显示引用的其他页面的内容,需要被显示,放在body中)

4、frame不能调整框架的宽高,只能通过frameset间接设置;iframe可以通过width和height属性来调整宽高,不能通过frameset控制

5、frameset不能被浏览器解读的时候,如果里面设置了noframes就会显示出来noframes标签内的内容。

6、iframe 可以放到表格里面。frame 则不行。

<table>
<tr>
<td><iframe id="" src=""></iframe></td>
</tr>
</table>

补充

<iframe>的优缺点

<iframe>优点:

  • 解决加载缓慢的第三方内容如图标和广告等的加载问题
  • Security sandbox
  • 并行加载脚本

<iframe>的缺点:

  • iframe会阻塞主页面的Onload事件;

  • 即使内容为空,加载也需要时间

  • 没有语意

  • iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载

    使用iframe之前需要考虑缺点。如果需要使用iframe,最好是通过javascript动态给iframe添加src属性值,这样可以绕开以上问题

<iframe>frameset的相同点和不同点

相同点:

iframe 和frameset都是html布局的框架布局

不同点:

iframe是一个内联框架,是在页面里生成内部框架

frameset定义一个框架集,包含多个子框架,每个框架都是独立的文档

iframe/frameset/frame的区别的更多相关文章

  1. 使用iframe的优缺点,为什么少用iframe以及iframe和frame的区别。

    注:HTML5不再支持使用frame,iframe只有src 属性一.使用iframe的优缺点优点:1.程序调入静态页面比较方便;2.页面和程序分离;缺点:1.iframe有不好之处:样式/脚本需要额 ...

  2. html/css基础篇——iframe和frame的区别【转】

    转自共享圈的使用iframe的优缺点,为什么少用iframe以及iframe和frame的区别.其中本人不认同的地方有做小修改 注:HTML5不再支持使用frame,iframe只有src 属性 一. ...

  3. 详解iframe与frame的区别

    iframe与frame的区别 一.使用iframe的优缺点 优点: 1.程序调入静态页面比较方便; 2.页面和程序分离; 缺点: 1.iframe有不好之处:样式/脚本需要额外链入,会增加请求.另外 ...

  4. frame,iframe,frameset用法和区别

    ■ 框架概念 : 所谓框架便是网页画面分成几个框窗,同时取得多个 URL.只需要 <FRAMESET> <FRAME> 即可,而所有框架标记需要放在一个总起的 html 档,这 ...

  5. iframe和frame的区别

    在同时有frame和Iframe的一个窗口里frame最大可以做个frameset的儿子,Iframe最大也只能做到frameset的孙子.frame的布局限于几种,Iframe想放哪里放哪里.fra ...

  6. iframe与frameset有什么区别

    frame,iframe,frameset 的区别 <FRAMESET> <FRAME><NOFRAMES><IFRAME>欲明白本篇[HTML剖析]之 ...

  7. 47.HTML---frame,iframe,frameset之间的关系与区别

    iframe 是在html页面内嵌入框架 框架内可以连接另一个页面, 如 <html> <head></head> <body> <iframe ...

  8. iframe 与 frame 区别

    1.iframe iframe主要来内联一个外联的页面,如: <!DOCTYPE html> <html lang="zh"> <head> & ...

  9. <iframe>和<frame>标签属性详解

    iframe>元素会创建包含另外一个文档的内联框架(即行内框架): 一.align 属性(不赞成) align属性规定iframe相对于周围元素的水平和垂直对齐方式,因为iframe元素是行内元 ...

随机推荐

  1. scrapy框架之进阶

    五大核心组件 - 引擎(Scrapy) 用来处理整个系统的数据流处理, 触发事务(框架核心) - 调度器(Scheduler) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. ...

  2. pip 安装指定版本的工具

    记录一下避免忘记 安装facebook-business的版本在3.0 到 4.0之间的最新版本, == : 指定版本号 pip install "facebook-business> ...

  3. Linux嵌入式学习过程(转载)

    嵌入式专业是一门实践性非常强的学科,只有多动手,多实践,多编程,多调试,多看书,多思考才能真正掌握好嵌入式开发技术.那么,如何从零开始学习嵌入式开发技术, 进入嵌入式开发大门呢,笔者根据自己的嵌入式学 ...

  4. SQL-W3Chool-高级:SQL CREATE DATABASE 语句

    ylbtech-SQL-W3Chool-高级:SQL CREATE DATABASE 语句 1.返回顶部 1. CREATE DATABASE 语句 CREATE DATABASE 用于创建数据库. ...

  5. x86架构64位模式下的寄存器列表

    在此列出x86架构处理器在64位模式下的可用寄存器列表,方便查阅- 这里要注意的是,在64位模式下,所有通用寄存器都能访问第8位部分,低16位部分以及低32位部分. 以下是64位模式下AMD64 AB ...

  6. MySQL中的sleep函数介绍

    MySQL数据库中有一个不太常用但便于进行某些调试的函数:sleep(),今天我们就来介绍一下这个函数的用法. 首先,看看官网对于函数的定义: SLEEP(duration)Sleeps (pause ...

  7. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_13-webpack研究-webpack入门程序

    创建webpack测试的目录 定义webpack的入口文件 mdel01必须导出,main里面才能导入 导出多个 数组的写法 main是入口文件,里面已经引入了vue.min和model01.js   ...

  8. Win10安装多个MySQL实例

    Win10安装MySQL-8.0.15 1.下载mysql-8.0.15-winx64.zip安装包,地址如下 https://cdn.mysql.com//Downloads/MySQL-8.0/m ...

  9. android studio 开发中启动android项目报错sdk版本不一致解决方案

    安卓项目开发中新建项目后再run'的时候发现报错com.android.support:appcompat-v7依赖报错 查看下build.gredle所配置的参数: 打开项目的build.gradl ...

  10. vue-cli3项目运行时一直发http://localhost:8080/sockjs-node/info?t=1462183700002请求

    报错如下图: 解决方式: 一.如果是在开发环境,应该是开发的时候网络环境变更导致,比如你切换无线网络,导致开发服务器的IP地址换了,这样开发服务器会不知道如何确定访问源.开发环境中关闭npm dev ...