html – IE9 iframe中的媒体查询失败

前端之家收集整理的这篇文章主要介绍了html – IE9 iframe中的媒体查询失败前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的CSS中有以下媒体查询
  1. @media screen and (min-width: 0px) and (max-width: 319px) {
  2. body {background-color:red;}
  3. }
  4.  
  5. @media screen and (min-width: 320px) and (max-width: 480px) {
  6. body {background-color:orange;}
  7. }
  8.  
  9. @media screen and (min-width: 481px) and (max-width: 980px) {
  10. body {background-color:yellow;}
  11. }
  12.  
  13. @media screen and (min-width: 981px) and (max-width: 1200px) {
  14. body {background-color:green;}
  15. }
  16.  
  17. @media screen and (min-width: 1201px) {
  18. body {background-color:blue;}
  19. }

和五个iframe相应的大小:

  1. <iframe frameBorder="0" src="index.html" height="320" width="255" ></iframe>

这些查询在独立的html文件中可以正常运行,但是当在iframe上下文中查看时,它们在IE9中失败。所有其他浏览器都显示OK。

任何人都知道为什么谢谢

对于记录,父和子html具有相同的docType,并且CSS被用作text / css。

解决方法

不是一个真正的答案,但可以帮助别人在IE中找到这个bug的工作。

包含iframe的页面

  1. <link href="style.css" rel="stylesheet">

iframe页面

  1. <link href="style.css?frameX" rel="stylesheet">

param frameX防止IE缓存css页面,因此iframe与其他页面独立地具有响应布局。这只是一个黑客(可怕的),并帮助别人找到这个问题的答案。

示例文件

的index.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>Title</title>
  5. <Meta name="viewport" content="width=device-width,initial-scale=1.0">
  6. <link href="style.css" rel="stylesheet">
  7. </head>
  8. <body>
  9. <p></p>
  10.  
  11. <hr>
  12. 250px frame
  13. <iframe frameBorder="0" src="frame1.html" height="100" width="250" id='frame_1'></iframe>
  14.  
  15. <hr>
  16. 350px frame
  17. <iframe frameBorder="0" src="frame2.html" height="100" width="350" id='frame_2'></iframe>
  18.  
  19. <hr>
  20. 390px frame
  21. <iframe frameBorder="0" src="frame3.html" height="100" width="390" id='frame_3'></iframe>
  22.  
  23. </div>
  24. </body>

frame1.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>Title</title>
  5. <Meta name="viewport" content="width=device-width,initial-scale=1.0">
  6. <link href="style.css?page=frame1" rel="stylesheet">
  7. </head>
  8. <body>
  9. <p></p>
  10. </body>
  11. </html>

frame2.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>Title</title>
  5. <Meta name="viewport" content="width=device-width,initial-scale=1.0">
  6. <link href="style.css?page=frame2" rel="stylesheet">
  7. </head>
  8. <body>
  9. <p></p>
  10. </body>
  11. </html>

frame3.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>Title</title>
  5. <Meta name="viewport" content="width=device-width,initial-scale=1.0">
  6. <link href="style.css?page=frame3" rel="stylesheet">
  7. </head>
  8. <body>
  9. <p></p>
  10. </body>
  11. </html>

style.css文件

  1. iframe{display:block;}
  2.  
  3. @media (max-width: 8000px)
  4. {
  5. body p:before {content: "bigger than 550px";}
  6. }
  7.  
  8. @media (max-width: 550px)
  9. {
  10. body p:before {content: "max550";}
  11. }
  12.  
  13. @media (max-width: 450px)
  14. {
  15. body p:before {content: "max450";}
  16. }
  17.  
  18. @media (max-width: 350px)
  19. {
  20. body p:before {content: "max350";}
  21. }
  22.  
  23.  
  24. @media (max-width: 250px)
  25. {
  26. body p:before {content: "max250";}
  27. }

猜你在找的HTML相关文章