我试图通过iframe在旧页面中嵌入一个“新”样式页面,但在IE9中,当页面加载到iframe中时,border-radius之类的东西仍然没有效果。当页面单独加载时,圆角和效果看起来很好,但是当在iframe中时,css属性似乎被忽略。
最初我认为这是DOCTYPE继承问题,但它们都是<!DOCTYPE html>
(外页和内页)。接下来,我相信它是内部iframe继承的content="IE=Emulate8"
。当然,这是一种理论。如果这是一个不正确的理论,请告诉我。 :)
无论如何,这是页面的一个例子:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="IE=EmulateIE8" http-equiv="X-UA-Compatible">
</head>
<body>
... stuff...
<iframe>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1">
</head>
</html>
</iframe>
</body>
</html>
其中一些可能并不真实。无论如何,我的问题是:如果EmulateIE8是为什么像border-radius这样的css属性在IE9下的iframe中不起作用的罪魁祸首,是否可以覆盖它或在内部iframe中禁用它?
请注意:遗憾的是,在不改变整个应用程序框架的情况下更改iframe外部的内容很困难(遗留应用程序*叹气*)。我试图在遗留应用程序中添加一些更现代的东西。
答案 0 :(得分:4)
如上所述here: 从IE9模式开始,网页无法显示多种文档模式。例如,考虑一个基于标准的网页,其中包含以怪异模式显示内容的框架元素。 IE9模式以标准模式显示子帧(因为父文档处于标准模式)。但是,从Internet Explorer 10开始,子帧可以模拟怪异模式。有关详细信息,请参阅IE10中的IEBlog:HTML5 Quirks模式。但是,为了获得最佳效果,请始终使用文档模式。