美文网首页
【重构笔记-1】media query兼容IE

【重构笔记-1】media query兼容IE

作者: hershin | 来源:发表于2017-06-02 14:59 被阅读0次

以下两个插件均不支持样式表跨域

页面布局变化时均有500ms左右的延迟

Respond.js

  • Respond.js只支持media query的min-width和max-width属性

  • 引入时,样式表放在Respond.js前面,且建议均在head中引入

  • 当样式表在域名的子域名或者单独CDN中时,可按以下代码解决跨域问题

假设网站域名为www.domain.com

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Respond JS</title>
    <!--子域名的文件-->
    <link href="http://static.domain.com/css/common.css" rel="stylesheet"/>
    <script src="http://static.domain.com/js/Respond.js"></script>
    <link href="http://static.domain.com/html/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
    <!--网页所在域名的文件-->
    <link href="http://www.domain.com/respond/respond.proxy.gif" id="respond-redirect" rel="respond-redirect" />
    <script src="http://www.domain.com/respond/respond.proxy.js"></script>
</head>
<body>
    <p>网页内容</p>
</body>
</html>

css3-mediaqueries.js

  • css3-mediaqueries.js支持media query几乎所有的属性

  • 加载速度没有respond.js快

  • 若样式表与网站不在一个域名下,可将含有media query的样式单独整理出来,并在head引入IE判断语句,如下:

<!--[if IE 8]> 
    <script src="http://www.domain.com/respond/css3-mediaqueries"></script>
    <link href="http://www.domain.com/respond/.jsrespond-ie8.css" rel="stylesheet" type="text/css" media="all" />
<![endif]-->

js判断

  • Respond.js支持的CSS属性有限。
  • 由于在项目中我需要根据height进行媒体查询,因此选择了css3-mediaqueries.js插件。但是当应用到项目中时,一旦发生媒体查询整个页面就会卡死崩溃。
  • 由于两个插件都不能达到自己项目预期的效果,最后只能自己用js写了一段适配代码。
    <!--[if IE]>  
        <script type="text/javascript">
            $(document).ready(function(){
                changeSizeIE();
                $(window).resize(function(){
                    changeSizeIE();
                })
            })
            function changeSizeIE(){
                if($(window).height() < 745){
                    //
                    if($(window).width() <= 1130){
                        //
                    }
                }
                if($(window).height() >= 745 && $(window).height() < 925){
                    //
                    if($(window).width() <= 1300){
                        //
                    }
                }
                if($(window).height() >= 925){
                    //
                    if($(window).width() <= 1540){
                        //
                    }
                }
            }
        </script>
    <![endif]-->

相关文章

网友评论

      本文标题:【重构笔记-1】media query兼容IE

      本文链接:https://www.haomeiwen.com/subject/mblufxtx.html