2

我試圖通過iframe在較早的頁面內嵌入「新」風格的頁面,但在IE9中,當頁面加載到內部時,像border-radius這樣的東西仍然沒有效果iframe。當頁面自己加載時,圓角和效果顯示得很好,但是當在iframe中時,css屬性似乎被忽略。忽略IE9內部iframe中的EmulateIE8

最初我以爲這是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之外的內容很困難(遺留應用程序*嘆息*)。我正在嘗試在遺留應用程序中放置一些更現代的東西。

回答

4

如注意here: 從IE9模式開始,網頁無法顯示多種文檔模式。例如,考慮一個基於標準的網頁,其中包含一個以怪癖模式顯示內容的框架元素。 IE9模式以標準模式顯示子框架(因爲父文檔處於標準模式)。但是,從Internet Explorer 10開始,子框架可以模擬奇怪模式。有關更多信息,請參閱IE10中的IEBlog:HTML5 Quirks模式。但爲了獲得最佳效果,請始終使用文檔模式。