在ie8及以下使用twitter bootstrap响应.js

时间:2013-07-08 10:03:38

标签: internet-explorer-8 internet-explorer-7 respond.js

我正在使用twitter bootstrap实现一个响应式网站,但在iexplorer 8及以下版本中无法使用媒体查询。

我为try response.js创建了一个简单的例子,但是mediaqueries继续不在iexplorer 7-8上工作,这里是html:

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<title>Bootstrap 101 Template</title>
<meta name="Description" content="Web description here" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">
<link href="./css/styles.css" rel="stylesheet">
<!--[if IE]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link rel="shortcut icon" href="./img/favicon.png">
</head>
<body>
<div class="container">
  <h1>Hello, world!</h1>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="./js/respond.min.js"></script>
<script src="./js/scripts.js"></script>
</body>
</html>

这是style.css:

@media only screen and (max-width: 38.75em) {
body {
    background: green;
}
}

此致

3 个答案:

答案 0 :(得分:2)

https://github.com/scottjehl/Respond#cdnx-domain-setup

CDN / X-Domain设置

Respond.js的工作方式是通过AJAX请求CSS的原始副本,因此如果您在CDN(或子域)上托管样式表,则需要上传代理页面以启用跨域通信

有关演示的信息,请参阅跨域/ example.html:

Upload cross-domain/respond-proxy.html to your external domain
Upload cross-domain/respond.proxy.gif to your origin domain
Reference the file(s) via <link /> element(s):

<!-- Respond.js proxy on external server -->
<link href="http://externalcdn.com/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />

<!-- Respond.js redirect location on local server -->
<link href="/path/to/respond.proxy.gif" id="respond-redirect" rel="respond-redirect" />

<!-- Respond.js proxy script on local server -->
<script src="/path/to/respond.proxy.js"></script>

如果您遇到跨域设置问题,请确保respond-proxy.html没有附加查询字符串。

注意:非常感谢@doctyper在跨域代理中的贡献!

答案 1 :(得分:0)

您需要在<script src="./js/respond.min.js"></script>代码上方添加</head>

答案 2 :(得分:0)

如果您不想添加与respond.js相关的任何代码,请通过CDN加载bootstrap.min.css,但IE 8除外。对于IE 8,请使用本地静态文件。

    <!--[if lte IE 8]>                                                      
        <link rel="stylesheet" href="/path/to/bootstrap.min.css' %}" />
    <![endif]-->                                                            
    <!--[if gt IE 8]>                                         
        <link rel="stylesheet" href="{CDN Address}" />                                                      
    <![endif]-->                                              
    <!--[if !IE]><!-->                                        
        <link rel="stylesheet" href="{CDN Address}" />
    <!--<![endif]-->

在IE 8~11和其他webkit浏览器上测试过。