在 HTML 中, iframe 元素用于在网页中嵌入其它网页的内容,例如:

<iframe src="http://example.com/abc.html">iframe is not supported</iframe>

其中,iframe 的 src 属性指明要显示的其它网页的地址,而标签中的内容仅在浏览器不支持 iframe 时显示。

对于 iframe 元素,有一些需要注意的问题。首先,从它的名称(inline frame)中可以知道,它是 inline 元素,因此如果要让它填满整个 block 元素,需要设置 iframe 的样式为 display: block。比如下面的例子

<!doctype html>
<head>
<style type="text/css">
div {
width: 480px;
height: 320px;
padding: 0;
overflow: auto;
}
iframe {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
border: 0 none;
}
</style>
</head>
<body>
<div><iframe src="http://www.w3.org"></iframe></div>
</body>
</html>

这个例子中,由于 iframe 默认是 inline 元素,默认它会放在基线之上,而基线之下还有一定高度(即 descender 部分)所以它会溢出了。因此,我们需要设置 iframe 的样式为 display: block 或者 vertical-align: bottom

其次,由于 iframe 是替换元素(replaced element),有一些 CSS 样式对它是无效的。例如,你不能在绝对定位中通过同时设置 top,left,right 和 bottom 四个距离来自动确定它的大小。

在 HTML4 中, iframe 还有不少属性,但在 HTML5 中很多都废弃了,只留下 name,src,width,height 这几个。name 属性指明该页面的名称,width 和 height 指明该 iframe 页面的像素大小(不用加 px)。另外,HTML5 中对 iframe 元素还加入了 srcdoc,seamless 和 sandbox 这三个属性。其中,srcdoc 属性可以指明 HTML 内容,如果 srcdoc 和 src 属性都出现时只使用 srcdoc 属性。而 seamless 属性可以让 iframe 嵌入页面和主页面融为一体,比如将 iframe 元素的样式也应用到 iframe 页面中,又如在主页面中打开 iframe 中的链接。最后的 sandbox 属性将禁止 iframe 页面访问主页面的脚本,cookie 等可能涉及到安全性的内容。

参考资料:
[1] W3C HTML4 - Frames in HTML documents
[2] W3C HTML5 - The iframe element
[3] <iframe> - HTML - MDN[4] HTML: Strange space between iframe elements?

HTML 的 iframe 元素的更多相关文章

  1. html iframe 元素之间的调用

    html iframe 元素之间的调用一.简介 一般需要引入一个独立页面的时候,我们会使用iframe.在业务需要的时候,我们需要在父页面与iframe页面之间进行交互.交互的时候,我们就需要使 用到 ...

  2. iframe 元素

    iframe 元素会创建包含另外一个文档的内联框架(即行内框架). 可以访问:http://www.w3school.com.cn/tags/tag_iframe.asp

  3. JS操作iframe元素

    1.  demo1.html页面中有个iframe元素,iframe元素的src是iframe1.html,怎么在demo1.html页面中操作iframe1.html页面 答曰:demo1.html ...

  4. iframe元素的学习(笔记)

    什么是iframe:iframe元素即内联框架,iframe是内联的并且承前启后,对于外围的页面,iframe是一个普通的元素,对于iframe里面的内容,又是一个五脏俱全的页面.重下面的写法可以看出 ...

  5. iframe 元素会创建包含另外一个文档的内联框架(即行内框架)

    HTML 与 XHTML 之间的差异 在 HTML 4.1 Strict DTD 和 XHTML 1.0 Strict DTD 中,不支持 iframe 元素. 提示和注释: 提示:您可以把需要的文本 ...

  6. jquery/js iframe 元素操作

    1.判断id/ class 是否存在? <script> $(function(){ if(("#id_name").length()>0){ //如果id 存在 ...

  7. javascript 获取iframe元素的方法

    javascript  获取iframe元素的方法 第一种: $("#IframeID").contents().find("div"); 第二种: $(win ...

  8. 寻找不到iframe元素

    一直找不到元素,是因为有两层iframe的 找iFrame元素方法如下 1.iFrame有ID 或者 name的情况//进入id="frame1"的frame中,定位id=&quo ...

  9. 父子一对多iframe,子iframe改子iframe元素

    $("iframe", parent.document).contents().find("#ProductNameIn").val(66666666); 1. ...

随机推荐

  1. mysql的过程和Oracle的区别

    mySQL 和 Oracle 不一样  , mysql 中的function 中, 没有 CREATE OR REPLACE如果需要用到这句,可以使用 DROP FUNCTION IF EXISTS ...

  2. HDU 1171 Big Event in HDU(DP)

    点我看题目 题意 : 给你一个n,然后n组数据,每组两个数字,一个是物品的价值,另外一个是物品的数量,让你尽量将这些东西分成价值相等的两份,如果无法相等就前一份要大于后一份. 思路 :这个题可以转化成 ...

  3. POJ1269+直线相交

    求相交点 /* 线段相交模板:判相交.求交点 */ #include<stdio.h> #include<string.h> #include<stdlib.h> ...

  4. 自编的CHtmlView浏览器,怎么截获超连接,不让新窗口在IE中打开

    blog <自编的CHtmlView浏览器,怎么截获超连接,不让新窗口在IE中打开>    http://bbs.csdn.net/topics/10299197    http://so ...

  5. Ember.js demo3

    <!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery.j ...

  6. windows ハンドル

    windows句柄 这篇文章是我在学习的时候为了以后忘记所以把当时的理解记录下来.一定有不正确的地方,所以仅供参考. 我们初学VC++是经常遇到一些我们在标准C++中没有的数据类型,如句柄,消息.  ...

  7. 对SharePoint 2007数据库中一些数据表的使用

    转:http://blog.csdn.net/ma_jiang/article/details/6553392 在工作中接触了一些SharePoint的数据库中的一些表.在此做个总结. 一位高手告诉我 ...

  8. Axis2联接WCF(比较完整的版本)

    Axis2联接WCF(比较完整的版本) 分basicHttpBinding和wsHttpBinding两种情况: 一.basicHttpBinding比较简单一点,先来看看它所要求的HTTP包:POS ...

  9. 教你如何通过ICCID找回丢失的的iPhone

    22日晚买了FACETIME,在某宝上买的.价格不贵,可以查到偷手机的人注册FT的号码,还可以查询手机被刷机和被维修的日期(这个很关键) 27日手机被刷机,遂买了某宝查询ICCID的服务,找到一串IC ...

  10. Android 线程优先级

    对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题,比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编程 ...