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. jira默认是jira_user用户组的用户有登录jira的权限

    场景描述: 今天给jira新建了几个用户组,看着英文的jira_user和jira_developer有点多余,所以就给删掉了.然后后面新建了开发人员和测试人员用户组,进行了人员分配和项目分配,可是突 ...

  2. this关键字的用法小结

    1.this :指它所在函数所属对象的引用. 简单说:哪个对象调用this所在的函数,this就指哪个对象. 主要是为了区分:成员变量和局部变量 2.构造函数之间的调用用this关键字,如,this( ...

  3. linux 下使用dd制作启动U盘 安装linux

    1.找到U盘: sudo fdisk -l 2.卸载U盘:(这个不是必须,如果没有挂载u盘,可以省略) sudo umount /dev/sdb1 3.建立文件系统,格式化U盘: sudo mkfs. ...

  4. 基于Kafka+ELK搭建海量日志平台

    早在传统的单体应用时代,查看日志大都通过SSH客户端登服务器去看,使用较多的命令就是 less 或者 tail.如果服务部署了好几台,就要分别登录到这几台机器上看,等到了分布式和微服务架构流行时代,一 ...

  5. csp-s模拟109

    这场考试状态是极差,也因而无畏地打下了三个乱搞.然而这场确实挺乱搞.T1状压但我没优化而选择循环展开,T2打$bitset$随机化(考场上打的有问题不是随机但也能A),T3贪心骗分.但是因为状态实在太 ...

  6. 蚁群算法求解TSP问题

    一.蚁群算法简介 蚁群算法是对自然界蚂蚁的寻径方式进行模似而得出的一种仿生算法:蚂蚁在运动过程中,能够在它所经过的路径上留下信息素(pheromone)的物质进行信息传递,而且蚂蚁在运动过程中能够感知 ...

  7. mongoose 安装及配置

    MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方>案.MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据 ...

  8. centos中screen的使用

    只是讲解几个简单的操作,例如,创建新窗口,切换到新窗口,删除窗口.(因为我要启动elk,所以需要使用到screen) 一.创建一个新窗口: 安装完成后,直接敲命令screen就可以启动它.但是这样启动 ...

  9. Java的三种工厂模式

    一.简单工厂模式 简单工厂的定义:提供一个创建对象实例的功能,而无须关心其具体实现.被创建实例的类型可以是接口.抽象类,也可以是具体的类 实现汽车接口 //产品接口 //汽车需要满足一定的标准 pub ...

  10. C++数据结构之排序

    一.简单排序 冒泡排序: 插入排序: 逆序对 希尔排序: