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

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

页面布局变化时均有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]-->
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,830评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,355评论 0 11
  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 1,277评论 0 1
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 24,223评论 8 184
  • 一骑绝尘起轻烟, 归心似箭把家还。 窗外寒风浑不觉, 车内暖语话田园。 双脚踏入农家院, 父慈娘亲展欢颜。 冰封老...
    飞镝阅读 76评论 0 0