今天调试一些布局问题时,我很惊讶<iframe>
元素的默认显示属性为inline
。
对我而言,这似乎很奇怪,特别是考虑到您可以将height
和width
应用于浏览器所尊重的<iframe>
,这不应该是简单的情况直列元件。
那么有人能解释一下这背后的原因吗?
HTML
<iframe id="test"></iframe>
CSS
alert($('#test').css('display'))
https://jsfiddle.net/0tdLr9pq/
谢谢!
答案 0 :(得分:11)
因为HTML4规范如此说:
IFRAME
元素允许作者在a中插入一个框架 文本块。在文本部分中插入内联框架是 就像通过OBJECT
元素插入一个对象一样:它们都是 允许您将HTML文档插入另一个HTML文档的中间 可以与周围的文本等对齐。
“与周围文本对齐”部分意味着默认情况下它们不应该是块级别。
通常情况下,内联元素会忽略height
和width
属性:
10.3.1 Inline, non-replaced elements
width
属性不适用。10.6.1 Inline, non-replaced elements
height
属性不适用。
答案 1 :(得分:2)
IFRAME代表内联框架。请参阅:http://www.w3.org/TR/html401/present/frames.html#h-16.5