【问题标题】:Unable to get Media queries working in IE8无法让媒体查询在 IE8 中工作
【发布时间】:2012-05-12 13:47:15
【问题描述】:

更新我已经在我的 FTP Link here 上部署了一个实时版本!希望这会影响答案或至少是主要评论? :(

Modernizr 2.5+ 取消了对 respond.js 的原生支持。

问题:从 Modernizr 2.5+ 加载 yesnope.js 时,如何运行 Respond.js 以实现 IE6~8 媒体查询兼容性?

可能的答案:

  • yesnope 路径引用不正确。

  • 安装过程中遗漏了一步。

  • 脚本层次结构冲突

  • ??????

脚本:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>window.jQuery || document.write(unescape('%3Cscript src="<?php echo get_template_directory_uri(); ?>/library/js/libs/jquery-1.7.1.min.js"%3E%3C/script%3E'))</script>
<script src="<?php echo get_template_directory_uri(); ?>/library/js/modernizr.full.min.js"></script>     
<script src="<?php echo get_template_directory_uri(); ?>/library/js/scripts.js"></script>
        <script src="<?php echo get_template_directory_uri(); ?>/library/js/libs/less-1.3.0.min.js"></script>
        <script src="<?php echo get_template_directory_uri(); ?>/library/js/libs/selectivizr-min.js"></script>
        <script src="<?php echo get_template_directory_uri(); ?>/library/js/libs/respond.min.js"></script>
        <script src="<?php echo get_template_directory_uri(); ?>/library/js/libs/ggs.js"></script>
        <script type="text/javascript">
        Modernizr.load({
            test: Modernizr.mq('only all and (min-width: 1px)'),//true if media queries  supported
            nope: 'library/js/libs/respond.min.js'
            });
        </script>


    </body>

文件结构

另外 我已经删除了 Modernizr 的 top portion,因为它坚持(两个版本都不起作用)

【问题讨论】:

    标签: javascript jquery html css modernizr


    【解决方案1】:

    我不确定您为什么需要共享您的目录结构,但这是否解决了问题?

    Modernizr.load({
        test: Modernizr.mq('only all and (min-width: 1px)'),//true if media queries supported
        nope: 'library/js/libs/respond.min.js'
    });
    

    编辑: 试试这个,我试图让路径更像你已经使用的路径。

    Modernizr.load({
        test: Modernizr.mq('only all and (min-width: 1px)'),//true if media queries supported
        nope: '<?php echo get_template_directory_uri(); ?>/library/js/libs/respond.min.js'
    });
    

    【讨论】:

    • 我放置文件结构是因为有时路径可能不正常(css3pie)。有时你需要另一个 / 像 '/library'。不幸的是,这仍然不起作用。安装这个不再需要复制和粘贴脚本了吗?
    • 有什么想法可以从这里开始吗?
    • 我会尝试重新获取 Modernizr 的新副本(完整版本或自定义版本,包括加载和媒体查询)。或者也许将我的 nope 路径更改为 '&lt;?php echo get_template_directory_uri(); ?&gt;/library/js/libs/respond.min.js'
    • 你得到了什么具体的“没有结果”或失败。您是否确认 Modernizr 正在加载和/或以任何身份运行?
    • 是的,它像往常一样将类添加到正文中。
    【解决方案2】:

    终于解决了!
    未编译的 LESS 文件无法识别 respond.js。所以使用 Simpless,你会得到在 IE 中工作的 respond.js。

    Heres a similar questions

    【讨论】:

      【解决方案3】:

      Modernize 除外,应独立运行且开箱即用。

      这个想法是你把它放在你的标题标签中,以防止所谓的“无样式内容闪现”。

      此外,Modernizr 提供了许多创建自定义下载的可能性:

      http://modernizr.com/download/

      在此页面上,您可以明确包含 YepNope 和 MediaQuery 的内容。

      【讨论】:

      • 看来我的问题让你感到困惑。 Modernizr 有一个名为 yesnope.js 的自定义功能。我无法让 yesnope 触发 response.js。
      • 啊,看起来您编辑了您的最后一条评论。是的,我理解这种明确的包含;然而,这不是问题,问题在于让它完全适用于 IE 媒体查询。
      猜你喜欢
      • 2012-11-15
      • 2012-10-23
      • 2014-01-24
      • 2023-03-27
      • 2016-12-13
      相关资源
      最近更新 更多