我正在使用新的推特引导创建一个网站。该网站看起来很好,在除IE8之外的所有必需浏览器上都可以运行。

在IE8中,它似乎显示了移动版的一些元素,但却占据了我桌面的全屏。我认为我遇到的问题是,Twitter引导首先是移动端的。不知什么原因,IE8选择了这个选项。

我还注意到容器类似乎没有按照预期的那样拉入max-width CSS属性。有人能看出我做错了什么吗?

<!-- Favicon -->
<link rel="shortcut icon" href="/favicon.ico">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">

<!-- Bootstrap -->
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0-rc1/css/bootstrap.css" rel="stylesheet">
<link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<script src="/SiteFiles/js/modernizr.js"></script>

<!-- CSS -->
<link href="/SiteFiles/css/main.css" rel="stylesheet">

<header>
    <div class="topArea clearfix">
        <div class="container">
            <div class="topLinks">
                <div class="btn-group">
                    <span class="flag" data-toggle="dropdown">&nbsp;</span>
                    <ul class="dropdown-menu">
                        <li><a href="#">Country 1</a></li>
                        <li><a href="#">Country 2</a></li>
                        <li><a href="#">Country 3</a></li>
                        <li class="divider"></li>
                        <li><a href="#">Country 4</a></li>
                        <li><a href="#">Country 5</a></li>
                        <li><a href="#">Country 6</a></li>
                    </ul>
                </div>
                <div class="visible-sm btn-group">
                    <div class="plus" data-toggle="dropdown"><i class="icon-plus icon-2x">&nbsp;</i></div>
                    <ul class="dropdown-menu">
                        <li><a href="#">Parts & Service</a></li>
                        <li><a href="#">Store Locator</a></li>
                        <li><a href="#">Find a Service Centre</a></li>
                        <li><a href="#">Parts List</a></li>
                        <li><a href="#">Tool Vibration</a></li>
                        <li><a href="#">Resource Centre</a></li>
                        <li><a href="#">Media Centre</a></li>
                        <li><a href="#">Register your Tools</a></li>
                        <li><a href="#">About Us</a></li>
                        <li><a href="#">
                            <button type="button" class="btn btn-default">Where to Buy</button></a></li>
                    </ul>
                </div>
                <div class="topNav">
                    <ul class="hidden-sm">
                        <li>
                            <div class="btn-group">
                                <a href="#" data-toggle="dropdown">Parts & Service</a>
                                <ul class="dropdown-menu">
                                    <li><a href="#">Store Locator</a></li>
                                    <li><a href="#">Find a Service Centre</a></li>
                                    <li><a href="#">Parts List</a></li>
                                    <li><a href="#">Tool Vibration</a></li>
                                </ul>
                            </div>
                        </li>
                        <li><a href="#">Resource Centre</a></li>
                        <li><a href="#">Media Centre</a></li>
                        <li><a href="#">Register your Tools</a></li>
                        <li><a href="#">About Us</a></li>
                        <li><a href="#">
                            <button type="button" class="btn btn-default">Where to Buy</button></a></li>
                    </ul>
                </div>
                <div class="searchArea">
                    <input type="text" />
                    <a href="#" class="goBtn">GO</a>
                </div>
            </div>
        </div>
    </div>
    <div class="mainNavArea">
        <div class="container rel">

            <div class="logo">
                <img src="/SiteFiles/img/logo.png" title="Milwaukee - Nothing but heavy duty" alt="Milwaukee - Nothing but heavy duty" />
            </div>
            <div class="navi">
                <div class="navbar">
                    <div class="container">

                        <!-- .navbar-toggle is used as the toggle for collapsed navbar content -->
                        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                        </button>

                        <!-- Place everything within .navbar-collapse to hide it until above 768px -->
                        <div class="nav-collapse collapse navbar-responsive-collapse">
                            <ul class="nav nav-justified">
                                <li><span class="dropArrow">&nbsp;</span><span class="topNavPosition">Power Tools</span>

                                    <div class="navDrop">
                                        <div class="navDropInner">
                                            <div class="row">
                                                <div class="hidden-sm col-sm-4 col-lg-4">
                                                    <img src="/SiteFiles/img/drill.jpg" alt="" />
                                                </div>
                                                <div class="col-12 col-sm-8 col-lg-8">
                                                    <h2>Power Tools</h2>
                                                    <div class="row">
                                                        <div class="col-6 col-sm-6 col-lg-6">
                                                            <a href="#">Cutters</a>
                                                            <a href="#">Levels</a>
                                                            <a href="#">Pliers</a>
                                                            <a href="#">Saws</a>
                                                            <a href="#">Screwdrivers</a>
                                                        </div>
                                                        <div class="col-6 col-sm-6 col-lg-6">
                                                            <a href="#">Snips</a>
                                                            <a href="#">Utility Knives</a>
                                                            <a href="#">Combo Knives</a>
                                                            <a href="#">Hand Tool Accessories</a>
                                                        </div>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                        <a href="#" class="closeNav">X</a>
                                    </div>
                                </li>
                                <li><span class="dropArrow">&nbsp;</span><span class="topNavPosition">Hand Tools</span>

                                    <div class="navDrop">
                                        <div class="navDropInner">
                                            <div class="row">
                                                <div class="hidden-sm col-sm-4 col-lg-4">
                                                    <img src="/SiteFiles/img/drill.jpg" alt="" />
                                                </div>
                                                <div class="col-12 col-sm-8 col-lg-8">
                                                    <h2>Hand Tools</h2>
                                                    <div class="row">
                                                        <div class="col-6 col-sm-6 col-lg-6">
                                                            <a href="#">Cutters</a>
                                                            <a href="#">Levels</a>
                                                            <a href="#">Pliers</a>
                                                            <a href="#">Saws</a>
                                                            <a href="#">Screwdrivers</a>
                                                        </div>
                                                        <div class="col-6 col-sm-6 col-lg-6">
                                                            <a href="#">Snips</a>
                                                            <a href="#">Utility Knives</a>
                                                            <a href="#">Combo Knives</a>
                                                            <a href="#">Hand Tool Accessories</a>
                                                        </div>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                        <a href="#" class="closeNav">X</a>
                                    </div>
                                </li>
                                <li><span class="dropArrow">&nbsp;</span><span class="topNavPosition">Test & Measurement</span>

                                    <div class="navDrop">
                                        <div class="navDropInner">
                                            <div class="row">
                                                <div class="hidden-sm col-sm-4 col-lg-4">
                                                    <img src="/SiteFiles/img/drill.jpg" alt="" />
                                                </div>
                                                <div class="col-12 col-sm-8 col-lg-8">
                                                    <h2>Test & Measurement</h2>
                                                    <div class="row">
                                                        <div class="col-6 col-sm-6 col-lg-6">
                                                            <a href="#">Cutters</a>
                                                            <a href="#">Levels</a>
                                                            <a href="#">Pliers</a>
                                                            <a href="#">Saws</a>
                                                            <a href="#">Screwdrivers</a>
                                                        </div>
                                                        <div class="col-6 col-sm-6 col-lg-6">
                                                            <a href="#">Snips</a>
                                                            <a href="#">Utility Knives</a>
                                                            <a href="#">Combo Knives</a>
                                                            <a href="#">Hand Tool Accessories</a>
                                                        </div>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                        <a href="#" class="closeNav">X</a>
                                    </div>
                                </li>
                                <li><span class="dropArrow">&nbsp;</span><span class="topNavPosition">Accessories</span>

                                    <div class="navDrop">
                                        <div class="navDropInner">
                                            <div class="row">
                                                <div class="hidden-sm col-sm-4 col-lg-4">
                                                    <img src="/SiteFiles/img/drill.jpg" alt="" />
                                                </div>
                                                <div class="col-12 col-sm-8 col-lg-8">
                                                    <h2>Accessories</h2>
                                                    <div class="row">
                                                        <div class="col-6 col-sm-6 col-lg-6">
                                                            <a href="#">Cutters</a>
                                                            <a href="#">Levels</a>
                                                            <a href="#">Pliers</a>
                                                            <a href="#">Saws</a>
                                                            <a href="#">Screwdrivers</a>
                                                        </div>
                                                        <div class="col-6 col-sm-6 col-lg-6">
                                                            <a href="#">Snips</a>
                                                            <a href="#">Utility Knives</a>
                                                            <a href="#">Combo Knives</a>
                                                            <a href="#">Hand Tool Accessories</a>
                                                        </div>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                        <a href="#" class="closeNav">X</a>
                                    </div>
                                </li>
                            </ul>
                        </div>
                        <!-- /.nav-collapse -->
                    </div>
                    <!-- /.container -->
                </div>
                <!-- /.navbar -->
            </div>

        </div>
    </div>
</header>

将response .js放在页面底部,但在关闭主体标签之前,这里是response .js的链接,并在本地主机中运行这段代码。

https://github.com/scottjehl/Respond


在从bootstrapv2迁移到v3时,我遇到了完全相同的问题。

如果你(像我一样)通过用col-sm-X替换旧的spanX进行迁移,你还需要添加col-X类。col-X是在任何@media块之外的样式,因此它们不支持媒体查询。

要固定容器宽度,你可以自己在@media块外设置它。喜欢的东西:

.container {
  max-width: @container-tablet;
}
@import "twitter-bootstrap/less/bootstrap";

你从CDN (bootstrapcdn.com)得到你的CSS response .js只适用于本地文件。所以在IE8上尝试使用bootstrap.css的本地副本。或者阅读:CDN/X-Domain设置

另见:https://github.com/scottjehl/Respond/pull/206

更新:

请阅读:http://getbootstrap.com/getting-started/#support

此外,Internet Explorer 8需要使用response .js来启用媒体查询支持。

参见:https://github.com/scottjehl/Respond

因此,基本模板在头部分包含这些行:

<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
  <script src="../../assets/js/html5shiv.js"></script>
  <script src="../../assets/js/respond.min.js"></script>
<![endif]-->

我还必须设置以下META标签:

<meta http-equiv="X-UA-Compatible" content="IE=edge"> 

当我从Bootstrap 2过渡到Bootstrap 3时,我也遇到了同样的问题。我已经得到了response .js和html5shiv.js,并将我的元设置为edge。我忽略了从2到3导航栏元素类型已经改变。在Bootstrap 2中是nav。在Bootstrap 3中,现在是头文件。所以为了完全解决这个问题,我必须

<meta http-equiv="X-UA-Compatible" content="IE=edge">

把这个放在我加载css之后:

<!--[if lt IE 9]>  
    <script src="~/Content/compatibility/html5shiv.js"></script>
    <script src="~/Content/compatibility/respond.min.js"></script>
<![endif]-->

然后改变

<nav class="navbar" role="navigation">
</nav>

to

<header class="navbar" role="navigation">
</header>

哦,我还补充了一点

<meta name="viewport" content="width=device-width, initial-scale=1.0">

因为Bootstrap网站本身就是这样的。


不要忘记把你的css链接放在<head>中,因为response .js只接受这些。


需要添加- <meta http-equiv="X-UA-Compatible" content="IE=edge">

我正在使用Bootstrap 3 -让它在我的本地IE上工作。

我把它放在live中,在IE中不工作。

只是Bootstrap不包括那行代码在他们的模板,我不知道为什么,但这可能是由于它不是W3C兼容。


我在IE 10.0中也遇到过同样的问题。我知道这不是OP的问题所在,但也许对其他人有用。

在我的例子中,我在文档的开头有一个空行:

[blank line]
<!DOCTYPE html>
<html lang="es">
...

如果空行位于DOCTYPE和标记之间,问题也会显示出来:

<!DOCTYPE html>
[blank line]
<html lang="es">

一旦我删除了空行,并且没有了神奇的X-UA-Compatible元,IE 10就开始正确地呈现网站了。

如果你正在使用PHP和Smarty小心你的Smarty注释,因为他们会添加那些有问题的空行:-)


我的头标签是这样的:

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- Bootstrap core CSS -->
    <link href="css/modern-business.css" rel="stylesheet">
    <link href="font-awesome/css/font-awesome.min.css" rel="stylesheet">
    <link href="css/bootstrap.css" rel="stylesheet" media="screen">
    <script src="js/jquery.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/modern-business.js"></script>
     <!--[if lt IE 9]>
      <script src="js/html5shiv.js"></script>
      <script src="js/respond.js"></script>
    <![endif]-->  
</head>

如果你想在当地试试…尝试通过localhost,或创建一个QA服务器并设置内容并尝试。

我们需要响应.js引导3和它不会在本地机器工作,如果我们只是把它放在js和附加到html头。它会说访问被拒绝。由于IE存在安全限制,只能通过服务器工作。: P


在我的例子中,引导最小化CSS导致了这个问题。 为了让引导3.0.2在IE8中响应(使用F12开发人员工具模拟),我必须:

1 -设置X-UA-Compatible标志。

<meta http-equiv="X-UA-Compatible" content="IE=edge">

2 -使用非最小化的bootstrap.css,而不是bootstrap.min.css

<link href="/css/bootstrap.css" rel="stylesheet" />

3 -添加response .js(和html5shiv.js)

<!--[if lt IE 9]>
  <script src="/js/html5shiv.min.js"></script>
  <script src="/js/respond.min.js"></script>
<![endif]-->

如前所述,有两个不同的问题: 1) IE8不支持媒体查询 2)与跨域CSS文件一起使用的response .js必须如前所述包括在内。

如果你想使用BootstrapCDN,这里有一个工作的例子:

<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
<!--[if lt IE 9]>
    <link href="//netdna.bootstrapcdn.com/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
    <link href="img/ie/respond.proxy.gif" id="respond-redirect" rel="respond-redirect" />
    <script src="js/ie/html5shiv.js"></script>
    <script src="js/ie/respond.min.js"></script>
    <script src="js/ie/respond.proxy.js"></script>
<![endif]-->

还要确保将response.proxy. gif、response. min.js和response.proxy.js复制到本地目录


只是以防万一。确保在加载css文件之后加载IE特定的js文件。


我读了这里的每一条评论,什么都试过了。但无法在Windows 7 - Internet Explorer 11(文档模式:IE8)下运行。

然后我想到运行文档模式(IE8)和真正的IE8不一样,所以我安装了Windows Virtual PC (Windows 7 with Internet Explorer 8)和tadaaaa…它像魔法一样有效!

我把这段代码放在页面的底部,让它工作:

<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
</body>
</html>

如果你使用Bootstrap 3并且在除IE之外的其他浏览器上都能正常工作,请尝试下面的方法。

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->

从解释中可以看出,IE8是你的标准版本,使content="IE=edge"将以最高模式呈现页面。为了使其兼容,将其更改为content="IE=8"。

IE8 mode supports many established standards, including the W3C Cascading Style Sheets Level 2.1 Specification and the W3C Selectors API; it also provides limited support for the W3C Cascading Style Sheets Level 3 Specification (Working Draft) and other emerging standards. Edge mode tells Internet Explorer to display content in the highest mode available. With Internet Explorer 9, this is equivalent to IE9 mode. If a future release of Internet Explorer supported a higher compatibility mode, pages set to edge mode would appear in the highest mode supported by that version. Those same pages would still appear in IE9 mode when viewed with Internet Explorer 9.

<meta http-equiv="X-UA-Compatible" content="IE=edge">做什么?


提醒一下。我也遇到了同样的问题,但上面这些方法都没有帮我解决。最终我发现response .js不能解析@import引用的CSS。我将整个bootstrap.min.css通过@import导入到main.css中。

所以要确保没有任何CSS包含通过@import引用的媒体查询。


我已经解决了以下步骤。

(1)安装drupal 7的response .js模块。 (2) lessphp模块为drupal7设置在库中,而不是模块文件夹。 (3) (3.1)<meta http-equiv="X-UA-Compatible" content="IE=edge">

(3.2)

<!--[if lt IE 9]>
  <script src="js/html5shiv.js"></script>
<![endif]-->  

从主题设置使用CDN引导。

要了解更多,请查看我的drupal设计和开发网站博客www.devangsolanki.com


后验证:

文档类型 x - ua -兼容元标签 包含html5shiv.js和response .js(下载最新版本) response .js是本地的 从web服务器托管站点,而不是从File:// 不使用@import ...

col-lg, col-md和col-sm仍然不能工作。最后,我将bootstrap的引用移动到html5shiv.js和response .js的引用之前,这一切都工作了。

下面是一个片段:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />

    <title>Bootstrap Test for IE8</title>

    <!-- Moved these two lines up --> 
    <link href="includes/css/bootstrap.css" type="text/css" rel="stylesheet" />
    <script src="includes/js/bootstrap.js"></script>

    <!--[if lt IE 9]>
      <script src="includes/js/html5shiv.js"></script>
      <script src="includes/js/respond.min.js"></script>
    <![endif]-->    
</head>
<body>
    <div class="container">
        <div class="row">
            <div class="col-md-4" style="background-color:red;">col-md-4</div>
            <div class="col-md-8" style="background-color:green;">col-md-8</div>
        </div>
    </div>
</body>
</html>

我有一个解决这个问题的方法。实际上IE7和8不支持@media,如果你检查css的“col-md-*”类,那里的宽度是媒体宽度992px。只需创建一个新的css文件IE eg: IE.css,并添加条件注释。然后直接复制你的设计所需的类和任何媒体查询,你就完成了。


使用这个解决方案

<!--[if lt IE 9]>
<script src="js/css3-mediaqueries.js"></script>
<link rel="stylesheet" type="text/css" href="css/bootstrap-ie7.css" />
<![endif]-->

这个字符串<script src="js/css3-mediaqueries.js"></script> enable mediaqueries.js。 This string <link rel="stylesheet" type="text/css" href="css/bootstrap-ie7.css" />启用bootstrap字体。

在Bootstrap 3.3.5上测试

链接下载mediaqieries.js。 链接下载bootstrap-ie7.css


确保单独链接引导源

如果你使用LESS或SASS,不要贪心编译样式。 在我的项目中,我将bootstrap.min.css包含在我的主样式中,在文件的顶部-所以所有样式应该只有一个请求。

因此,boostrap类不能正常工作。 单独添加时,按预期工作。


我面对同样的问题,尝试了第一个答案,但缺少了一些东西。

如果你使用Webpack,你的css会作为一个样式标签加载,这是response .js不支持的,它需要一个文件,所以确保bootstrap是作为一个css文件加载的

我个人使用的是extract-text-webpack-plugin

const webpack = require("webpack")
const ExtractTextPlugin = require("extract-text-webpack-plugin")
const path = require("path")

module.exports = {
    context: __dirname+"/src",
    entry: "./index.js",
    output: {
        filename: "./dist/bundle.js",
        path: __dirname
    },
    plugins: [
        ...,
        new ExtractTextPlugin("./dist/bootstrap.css", {
            allChunks: true
        })
    ],
    module: {
        loaders: [
            ...,
            // your css loader excluding bootstrap
            {
                test: /\.css$/,
                loader: "style!css",
                exclude: [
                    path.resolve(__dirname, "node_modules/bootstrap/dist/css/bootstrap.css")
                ]
            },

            {
                // loads bootstrap as a file, change path accordingly if needs be, path needs to be absolute
                include: [
                    path.resolve(__dirname, "node_modules/bootstrap/dist/css/bootstrap.css")
                ],
                loader: ExtractTextPlugin.extract("style-loader", "css-loader?minimize")
            }
        ]
    }
}

希望对你有所帮助