HTML5 iFrame无缝属性
在HTML5中,iframe具有“无缝”等新属性,可以删除边框和滚动条。我已经试过了,但似乎不起作用,我仍然可以看到滚动条和边框(我使用Google Chrome作为浏览器),下面是我的代码:HTML5 iFrame无缝属性,html,iframe,attributes,Html,Iframe,Attributes,在HTML5中,iframe具有“无缝”等新属性,可以删除边框和滚动条。我已经试过了,但似乎不起作用,我仍然可以看到滚动条和边框(我使用Google Chrome作为浏览器),下面是我的代码: <iframe seamless="seamless" title="google" width="600" height="300" src="http://www.google.co.uk"></iframe> 知道它为什么不起作用吗 还有一个问题,是否可以在iframe
<iframe seamless="seamless" title="google" width="600" height="300" src="http://www.google.co.uk"></iframe>
知道它为什么不起作用吗
还有一个问题,是否可以在iframe中针对页面的特定部分?目前还不正确支持 Chrome 31(可能还有更早的版本)支持该属性的某些部分,但不完全支持。更新日期:2016年10月 无缝
属性不再存在。它最初被列入第一个HTML5规范,但后来被放弃。一个同名的无关属性在HTML5.1草案中做了一个简短的客串,在2016年年中被抛弃:
因此,我认为无论是从实现者方面还是从web开发人员方面,其要点都是无缝as specced似乎不是任何人想要的开始。或者至少比任何人想要的都多。不管怎么说,就像@annevk所说的,在阴影DOM的光照下,它似乎被很多事件“克服”
换句话说:从内存中清除无缝
属性,并假装它从未存在过
为了子孙后代,以下是我五年前的原始答案:
原始答复:2011年4月
该属性目前处于草稿模式。因此,目前还没有一款浏览器支持它(因为实现可能会发生变化)。同时,最好只使用CSS从iframe中删除边框/滚动条:
iframe[seamless]{
background-color: transparent;
border: 0px none transparent;
padding: 0px;
overflow: hidden;
}
无缝属性不仅仅是CSS可以添加的内容:属性背后的部分原因是允许嵌套内容继承应用于iframe的相同样式(例如,就好像嵌入的文档是元素内部的一个大嵌套)
最后,Internet Explorer版本(8及更早版本)需要附加属性以删除边框、滚动条和背景颜色:
<iframe frameborder="0" allowtransparency="true" scrolling="no" src="..."></iframe>
当然,这并不正确。所以这取决于你如何处理它。我(挑剔的)方法是嗅探代理字符串,并为早于9的IE版本添加属性
希望有帮助。:) 现在可以使用semless属性,在这里我找到了一篇德语文章
下面是关于这个主题的另一个演示:
您必须使用window.postMessage方法在父对象和iframe之间进行通信。您只需编写
无缝的
在你的代码中。不需要:
无缝=“无缝”
这是我自己发现的
编辑-这不会删除滚动条。奇怪地
滚动=“否”
在html5中似乎仍然有效。我已经尝试过使用html5推荐的内联样式的溢出函数,但这对我不起作用
在iframe上使用frameborder属性,并将其设置为frameborder=“0”。这将产生无缝的外观。现在你可能会说我想要嵌套的iframe来控制而不是滚动条。然后,您需要快速生成一个JavaScript脚本文件,该文件计算高度减去任何头并设置高度。Debounce是一个javascript插件,用于确保在较旧的浏览器(有时是chrome浏览器)中适当调整大小。这会让你走上正确的方向 我认为这可能对某人有用:
在chrome版本32中,iFrame周围会自动出现一个2像素的边框,而没有无缝属性。
通过添加以下CSS规则,可以轻松地删除:
iframe:not([seamless]) { border:none; }
Chrome使用与以下默认用户代理样式相同的选择器:
iframe:not([seamless]) {
border: 2px inset;
border-image-source: initial;
border-image-slice: initial;
border-image-width: initial;
border-image-outset: initial;
border-image-repeat: initial;
}
到2014年,无缝iframe还没有得到所有主流浏览器的完全支持,因此您应该寻找替代解决方案
到2014年1月,Firefox和IE 11仍然不支持无缝iframe,Chrome、Safari和Opera(webkit版本)也支持无缝iframe
如果您想详细检查此选项和更多受支持的选项,HTML5测试站点将是一个不错的选项:
您可以查看不同的平台,在“评分”部分,您可以单击每个浏览器,查看哪些浏览器受支持,哪些不受支持 iO8已删除对iframe无缝属性的支持
- 在Safari、主屏幕、新WKWebView和UIWebView中测试
其他iOS 8更改的完整详细信息和性能审查:
根据今天发布的最新W3C HTML5建议(很可能是最终的HTML5标准),还有更多。它似乎在标准化过程中的某个地方被删除了
据了解,没有主流浏览器(现在)支持此属性,因此您可能不应该使用它。我找不到任何符合我要求的内容,因此我提出了此脚本(取决于jQuery):
它将iframe调整为视口大小(考虑更宽的内容)。
如果前者更大,则可以改进使用视口高度而不是内容高度。该演示有助于实现无缝连接。德语文章实际上非常有用(如果你当然会说德语)。我最感兴趣的是,“无缝”在本地不受支持(使用file://protocol)overflow:hidden代码>--不确定这在这种情况下是否有意义。我认为无缝应该让它成为父文档的一部分;因此,它更像是被最大化了(如果iframe是文档中唯一的元素,则底部/顶部/左侧/右侧设置为0),并且它将具有适当的滚动,作为父文档的一部分,iframe的所有部分都是可读的<代码>溢出:hidden
根本不会这样做——它只会使iframe被删除