iframe/frameset/frame的区别
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的区别的更多相关文章
- 使用iframe的优缺点,为什么少用iframe以及iframe和frame的区别。
注:HTML5不再支持使用frame,iframe只有src 属性一.使用iframe的优缺点优点:1.程序调入静态页面比较方便;2.页面和程序分离;缺点:1.iframe有不好之处:样式/脚本需要额 ...
- html/css基础篇——iframe和frame的区别【转】
转自共享圈的使用iframe的优缺点,为什么少用iframe以及iframe和frame的区别.其中本人不认同的地方有做小修改 注:HTML5不再支持使用frame,iframe只有src 属性 一. ...
- 详解iframe与frame的区别
iframe与frame的区别 一.使用iframe的优缺点 优点: 1.程序调入静态页面比较方便; 2.页面和程序分离; 缺点: 1.iframe有不好之处:样式/脚本需要额外链入,会增加请求.另外 ...
- frame,iframe,frameset用法和区别
■ 框架概念 : 所谓框架便是网页画面分成几个框窗,同时取得多个 URL.只需要 <FRAMESET> <FRAME> 即可,而所有框架标记需要放在一个总起的 html 档,这 ...
- iframe和frame的区别
在同时有frame和Iframe的一个窗口里frame最大可以做个frameset的儿子,Iframe最大也只能做到frameset的孙子.frame的布局限于几种,Iframe想放哪里放哪里.fra ...
- iframe与frameset有什么区别
frame,iframe,frameset 的区别 <FRAMESET> <FRAME><NOFRAMES><IFRAME>欲明白本篇[HTML剖析]之 ...
- 47.HTML---frame,iframe,frameset之间的关系与区别
iframe 是在html页面内嵌入框架 框架内可以连接另一个页面, 如 <html> <head></head> <body> <iframe ...
- iframe 与 frame 区别
1.iframe iframe主要来内联一个外联的页面,如: <!DOCTYPE html> <html lang="zh"> <head> & ...
- <iframe>和<frame>标签属性详解
iframe>元素会创建包含另外一个文档的内联框架(即行内框架): 一.align 属性(不赞成) align属性规定iframe相对于周围元素的水平和垂直对齐方式,因为iframe元素是行内元 ...
随机推荐
- shell 字符串分割cut
cut 选项与参数 -d:后面接分隔字符.与-f一起使用. -f:依据-d的分隔字符将一段信息分隔数段,用-f取出第几段的意思. -c:以字符的单位取出固定字符区间 [zhang@localhost ...
- Spring Cloud Config(二):基于Git搭建配置中心
1.简述 本文选用Git作为配置仓库,新建两个环境的配置文件夹,dev 和 test,文件夹中分别存放 Config Client 端的配置文件,目录结构如下: ├ ─ ─ dev └ ─ ─ con ...
- oracle清除归档
清除Oracle归档日志命令echo -e 'delete noprompt archivelog ALL COMPLETED BEFORE '\'SYSDATE-${DELETE_ARCHIVELO ...
- vue js select下拉框
<template> <ul id="select"> <li> <div class="select-head"&g ...
- Flutter移动电商实战 --(36)FlutterToast插件使用
https://github.com/PonnamKarthik/FlutterToast fluttertoast: ^3.0.1 category_page.dart页面添加引用 import ' ...
- Android 屏幕适配之dimens适配
Android 屏幕适配之dimens适配 转 https://blog.csdn.net/github_2011/article/details/72636851 在过去多个项目中一直使用 ...
- oracle增删改查基本语法(DDL/DML)整理
DDL:Data Definition Language(数据库定义语言)DML:Data Manipulation Language(数据库操作语言) 一.表结构操作(create table.al ...
- Java 实现 bash命令
Java 实现 bash命令 1.BASH 命令简介 Bash,Unix shell的一种,在1987年由布莱恩·福克斯为了GNU计划而编写.1989年发布第一个正式版本,原先是计划用在GNU操作系统 ...
- 如何使用postman模拟https的post和get请求
下载postman The Collaboration Platform for API Development https://www.getpostman.com/ 按照api文档要求测试,下面以 ...
- javascript语法 1.运算符 2. 流程控制 3. 函数 4. 四种变量 5. 数据类型的运用 6. js页面交互
1.运算符 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...