我正在设置一个页面,但很难让它在浏览器中看起来很好(实际上只是 IE,因为它可以为 mozilla 和 webkit 正确呈现)。在认真考虑自 IE6 以来修复的旧 IE 错误之前,我想排除怪癖模式。容器页面有一个声明的文档类型,但是 iframe 代码没有。 iframe 内容会以 quirks-mode(因为它没有 doctype)还是以标准模式(因为容器有 doctype)呈现?来源遵循这个方案:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
...
<body>
...
<iframe ...>
<html>
<head>
...
</head>
<body>
....
</body>
</html>
</iframe>
...
</body>
</html>
最佳答案
警告 EMPTOR
由于有些人遗憾地没有注意到这个答案在 IE9 存在之前发布并接受了很长时间,这改变了问题的条款。我通常会删除它以避免捕获更多的反对票,但由于答案实际上仍然是真实的,并且可悲的是与浏览器人口统计数据的很大一部分相关,我会留下它。请不要再贬低它了。
Quirksmode:IE 将 iframe 渲染为单独的文档节点,不继承 doctype,默认为 quirks。
编辑:别人的 demonstration您的问题和非继承证明(感谢我的书签:P)
但是,您选择了“几乎”作为您的文档类型,这意味着无论如何都不允许使用 iframe。获得有效 iframe 的唯一方法是父级是否有怪癖,这使得继承与否成为一个有争议的问题。
Recommended reading .
关于internet-explorer - iframe 会在 quirks 模式下呈现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3717932/