为什么不能使用iframe绝对定位来设置高度/宽度
我的问题类似于IFRAME和相互冲突的绝对位置,但我特别想知道为什么不能在iframe中设置左/右或顶部/底部并使其工作。
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
iframe { position: absolute; display: block; top: 0; bottom: 0; left: 10px; width:100px; border: 1px solid black;}
div { position: absolute; display: block; top: 0; bottom: 0; left: 200px; width:100px; border: 1px solid black;}
</style>
</head>
<body>
<iframe></iframe>
<div></div>
</body>
</html>
该div占据了浏览器的全部高度。 iframe高150px。 Chrome 17,Firefox 11和IE9也是如此。 显然,这不是浏览器的怪癖。 HTML5规范中有一些内容说明,为了设置高度,您不能在iframe上设置左/右或顶部/底部。
iframes(与divs)有什么特别之处?
Iframes是“替换元素”。
这些被视为与未被替换的元素不同。 没有深入细节,只需查看规范的目录:http://www.w3.org/TR/CSS21/visudet.html
10.3计算宽度和边距
10.3.1内联,未被替换的元素
10.3.2内嵌,替换的元素
10.3.3正常流程中的块级非替换元素
10.3.4正常流程中的块级替换元素
10.3.5浮动的非替换元素
10.3.6浮动,替换的元素
10.3.7绝对定位的非替换元素 // div
10.3.8绝对定位,替换元素 // iframe
10.3.9'内嵌块',正常流程中未被替换的元素
10.3.10'内嵌块',在正常流程中替换元素
它只是不会工作。 这是iFrame的制作方式。
如果你仍然想要达到同样的解决方案,那么你使用div作为包装的绝对位置,你的顶部,左侧,右侧,底部。 把这个div放在你的iFrame宽度:100%和高度:100%。
问题解决了。
链接地址: http://www.djcxy.com/p/89907.html上一篇: why can't you use iframe absolute positioning to set height/width