美文网首页
【重构笔记-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