229

我正在使用新的 Twitter Bootstrap 创建一个站点。该站点看起来不错,并且可以在除 IE8 之外的所有必需浏览器中运行。

在 IE8 中,它似乎正在显示移动版本的元素,但在我的桌面的整个屏幕上延伸。我相信我遇到的问题是 Twitter 引导程序首先是移动设备。所以出于某种原因,IE8 会选择这个选项。

我还注意到container该类似乎没有按预期引入 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>
4

22 回答 22

260

您从 CDN (bootstrapcdn.com) 获得 CSS,respond.js 仅适用于本地文件。因此,在 IE8 上使用 bootstrap.css 的本地副本尝试您的网站。或阅读: CDN/X-Domain 设置

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

更新:

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

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

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

出于这个原因,基本模板在 head 部分包含这些行:

<!-- 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]-->
于 2013-07-30T21:13:16.823 回答
62

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

<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
于 2013-08-05T09:47:03.340 回答
17

从 Bootstrap 2 过渡到 3 时,我遇到了同样的问题。我已经有了 response.js 和 html5shiv.js 并将我的 meta 设置为 edge。我错过了从 2 到 3 的导航栏元素类型发生了变化。在 Bootstrap 2 中,它是导航。在 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>

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

哦,为了更好的衡量,我还添加了

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

仅仅因为这就是 Bootstrap 网站本身所拥有的。

于 2013-09-17T13:43:04.490 回答
14

就我而言,引导程序缩小的 CSS 导致了这个问题。为了使引导程序 3.0.2 在 IE8 中响应(使用 F12 开发人员工具模拟),我必须:

1 - 设置 X-UA 兼容标志。

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

2 - 使用未缩小的 bootstrap.css,而不是 bootstrap.min.css

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

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

<!--[if lt IE 9]>
  <script src="/js/html5shiv.min.js"></script>
  <script src="/js/respond.min.js"></script>
<![endif]-->
于 2013-12-03T15:17:13.427 回答
6

放在respond.js页面底部但在结束body标记之前,这是respond.js在您的本地主机中运行此代码的链接。

https://github.com/scottjehl/Respond

于 2013-07-30T12:39:59.920 回答
6

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

于 2013-12-18T02:21:43.960 回答
5

如前所述,存在两个不同的问题:1) IE8 不支持媒体查询 2) 如前所述,必须包含与跨域 css 文件结合使用的 respond.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]-->

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

于 2013-12-06T10:14:59.487 回答
5

不要忘记将您的 css 链接放在<head>asrespond.js中。

于 2013-09-27T15:18:42.527 回答
4

验证后:

  • 文档类型
  • X-UA 兼容元标记
  • 包含 html5shiv.js 和 respond.js(并下载最新版本)
  • respond.js 是本地的
  • 从 Web 服务器而不是从 File:// 托管站点
  • 不使用@import
  • ...

col-lg、col-md 和 col-sm 仍然无法正常工作。最后,我将对 bootstrap 的引用移到对 html5shiv.js 和 respond.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>
于 2014-05-08T20:05:08.897 回答
2

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

IE8 模式支持许多已建立的标准,包括 W3C Cascading Style Sheets Level 2.1 Specification 和 W3C Selectors API;它还为 W3C 级联样式表第 3 级规范(工作草案)和其他新兴标准提供有限的支持。

边缘模式告诉 Internet Explorer 以可用的最高模式显示内容。对于 Internet Explorer 9,这相当于 IE9 模式。如果 Internet Explorer 的未来版本支持更高的兼容性模式,则设置为边缘模式的页面将以该版本支持的最高模式显示。当使用 Internet Explorer 9 查看时,这些相同的页面仍会以 IE9 模式显示。

参考<meta http-equiv="X-UA-Compatible" content="IE=edge"> 有什么作用?

于 2014-02-07T17:12:38.900 回答
1

需要补充——<meta http-equiv="X-UA-Compatible" content="IE=edge">

我使用的是 Bootstrap 3——让它在我本地的 IE 上运行。

我把它活在 IE 中不起作用。

只是 Bootstrap 没有在他们的模板中包含那行代码,我不知道为什么,但这可能是因为它不兼容 W3C。

于 2013-10-20T23:57:06.697 回答
1

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

于 2015-01-03T00:22:04.457 回答
0

我已经解决了以下步骤。

(1) 为 drupal 7 安装了 Respond.js 模块。 (2) 在库中设置了 drupal 7 的lessphp 模块,而不是模块文件夹。(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

于 2014-03-28T04:13:48.163 回答
0

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

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

要修复容器宽度,您可以在 @media 块之外自行设置。就像是:

.container {
  max-width: @container-tablet;
}
@import "twitter-bootstrap/less/bootstrap";
于 2013-07-30T16:54:46.903 回答
0

我的头标签是这样的:

<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 服务器并设置内容并尝试。

我们需要针对 bootstrap 3 的 respond.js,如果我们只是将它放在 js 中并将其附加到标头中的 html 中,它将无法在本地机器上工作。它会说访问被拒绝。它只能通过服务器工作,因为 IE 有安全限制。:P

于 2013-11-28T09:28:21.973 回答
0

我已经阅读了这里的每一条评论,尝试了一切......但无法让它与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>
于 2014-01-22T12:14:14.097 回答
0

如果您使用 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]-->
于 2014-01-22T23:24:04.257 回答
0

我在 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 注释,因为它们会添加那些有问题的空白行 :-)

于 2013-10-30T16:49:32.273 回答
0

就像抬头一样。我有同样的问题,以上都没有为我解决。最终我发现respond.js没有解析通过@import引用的 CSS 。我将整个bootstrap.min.css导入 via@import到我的main.css.

因此,请确保您没有任何包含通过@import引用的媒体查询的 CSS 。

于 2014-03-09T14:26:01.477 回答
0

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

如果你们使用 Webpack,你的 css 将作为一个 style 标签加载,respond.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")
            }
        ]
    }
}

希望对你有帮助

于 2016-10-20T11:30:51.450 回答
0

使用此解决方案

<!--[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>启用媒体查询。此字符串<link rel="stylesheet" type="text/css" href="css/bootstrap-ie7.css" />启用引导字体。

在 Bootstrap 3.3.5 上测试

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

于 2015-11-02T17:29:15.580 回答
0

确保单独链接引导源

如果您使用LESSSASS不贪婪地编译样式。在我的项目bootstrap.min.css中,我在文件顶部包含了我的主要样式 - 所以所有样式都应该只有一个请求。

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

于 2016-02-26T09:30:24.887 回答