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. W: GPG error: http://ppa.launchpad.net trusty InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 8CF63AD3F06FC659

    报错信息: W: GPG error: http://ppa.launchpad.net trusty InRelease: The following signatures couldn't be ...

  2. codeforces#1234F. Yet Another Substring Reverse(子集dp)

    题目链接: https://codeforces.com/contest/1234/problem/F 题意: 给出一个只包含前20个小写字母的字符串,一次操作可以让一段字符颠倒顺序 最多一次这样的操 ...

  3. gitlab配置邮箱postfix(新用户激活邮件)

    亲测可用 https://www.cnblogs.com/yoyoketang/p/10287345.html

  4. 走进JavaWeb技术世界开篇:JavaWeb技术汇总

    微信公众号[Java技术江湖]一位阿里 Java 工程师的技术小站.(关注公众号后回复”Java“即可领取 Java基础.进阶.项目和架构师等免费学习资料,更有数据库.分布式.微服务等热门技术学习视频 ...

  5. pwn学习日记Day8 基础知识积累

    知识杂项 aslr:是一种针对缓冲区溢出的安全保护技术,通过对堆.栈.共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的的一种技术 ...

  6. GA算法及参数对结果的影响

    1.遗传算法简介 遗传算法是一种基于自然选择和群体遗传机理的搜索算法,它模拟了自然选择和自然遗传过程中的繁殖.杂交和突变现象.再利用遗传算法求解问题时,问题的每一个可能解都被编码成一个“染色体”,即个 ...

  7. THREE.js(一)

    //创建场景 var scene = new THREE.Scene(); //透视摄像机(视野角度,长宽比,远剪切面,进剪切面,) var camera = new THREE.Perspectiv ...

  8. CLR 虚方法调用和接口方法调用

    不知接口方法和虚方法分发有什么区别?似乎在CIL中都是callvirt指令. 对,MSIL里都是callvirt,但JIT的时候得到了不同的处理:对虚方法的分发是编译成这样: mov  ecx, es ...

  9. 安装Rabbitmq脚本

    安装RabbitMQ时需要先安装erlang插件 [root@ZHONG-LONG javascripts]# vim -erlang.sh #!/bin/sh ######安装erl插件 PRO=/ ...

  10. 【Java/JDBC】利用ResultSetMetaData从数据库的某表中获取字段信息并存到csv文件

    代码下载:https://files.cnblogs.com/files/xiandedanteng/FindNotnullColumns20191102-2.rar 这篇还不够完善,请看更完善的续篇 ...