列是 IE 8 中的全宽 - Css bootstrap

Posted

技术标签:

【中文标题】列是 IE 8 中的全宽 - Css bootstrap【英文标题】:column are full width in IE 8 - Css bootstrap 【发布时间】:2014-01-15 03:10:39 【问题描述】:

我在我的网页中使用 bootstrap 3.0.3 并添加 html5shiv 库并响应库来修复它,但它不适用于 Internet Explorer 8。

我的html代码:

<div class="container">
    <div class="row">
        <div class="col-sm-4" style="background:red;">&nbsp;</div>
        <div class="col-sm-4" style="background:green;">&nbsp;</div>
        <div class="col-sm-4" style="background:blue;">&nbsp;</div>
    </div>
</div>

它在 FF 和 Webkits 浏览器中运行良好,但导致 IE:

现在演示是here,我该如何解决?

【问题讨论】:

我也可以复制您的问题。 jsfiddle.net/ravimallya/LaN3d/4 全屏:fiddle.jshell.net/ravimallya/LaN3d/4/show。你犯了一个错误。您在行内有嵌套容器,反之亦然。我还更正了 respond.js 路径。 @Ravimalya 不,它不是重复的,您的固定样本不适用于 IE-8。 【参考方案1】:

根据线程中的解决方案:Must Bootstrap container elements include row elements?,您的标记应该是:

<div class="container">
    <div class="row">
        <div class="col-sm-4" style="background:red;">&nbsp;</div>
        <div class="col-sm-4" style="background:green;">&nbsp;</div>
        <div class="col-sm-4" style="background:blue;">&nbsp;</div>
    </div>
</div>

并使用这个 CSS 在 IE8 中实现它:

.container

    display:table;
    width: 100%;


.row

    height: 100%;
    display: table-row;

.col-sm-4

    display: table-cell;

这是工作的 demo

.row 类在 .container 中不是必需的,但如果包含 then,container> 行是顺序而不是行 > 容器您编码的)!

编辑

值得注意的是respond.js 仅适用于本地文件。因此,如果您在 IE8 上为您的网站从 CDN 获取了引导程序的 css 文件,它将无法正常工作,请尝试使用 bootstrap.css 的本地副本

Internet Explorer 8 和 Respond.js

在您的程序中使用 Respond.js 时请注意以下注意事项 Internet Explorer 8 的开发和生产环境。

Respond.js 和跨域 CSS 将 Respond.js 与托管在不同(子)域上的 CSS 一起使用(对于 例如,在 CDN 上)需要一些额外的设置。请参阅 Respond.js 有关详细信息的文档。

Respond.js 和 file:// 由于浏览器安全规则,Respond.js 不适用于页面 通过 file:// 协议查看(例如打开本地 HTML 文件时)。 要测试 IE8 中的响应功能,请通过 HTTP(S) 查看您的页面。看 详情请参阅 Respond.js 文档。

Respond.js 和@import Respond.js 不适用于通过 @import 引用的 CSS。在 特别是,已知某些 Drupal 配置使用 @import。看 详情请参阅 Respond.js 文档。

IE 兼容模式 旧 Internet Explorer 兼容性不支持 Bootstrap 模式。为确保您使用的是最新的 IE 渲染模式, 考虑在您的网页中包含适当的标签:

来源:Getbootstrap

【讨论】:

【参考方案2】:

如果不需要“响应性”,您可以使用 col-xs-* 类来代替为 respond.js 设置代理。它有效,因为 col-xs-* 类与媒体无关。它解决了我的问题。

【讨论】:

使用 col-xs-* 为我解决了这个问题。谢谢。【参考方案3】:

最好以仅适用于 IE 而不适用于任何其他浏览器的方式应用此功能,因为它可能会破坏您的某些响应式网站。这个页面专门讲述了如何应用 IE only CSS。

Apply CSS rules if browser is IE

【讨论】:

【参考方案4】:

您还需要记住 bootstrap.css 在 head 部分中的 respond.js 之上:

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- Mobile viewport optimisation -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Bootstrap example</title>

    <noscript>
        <link rel="stylesheet" href="../assets/css/noscript.css" />
    </noscript>

    <!-- Bootstrap -->
    <link href="../assets/bootstrap-3.3.5/dist/css/bootstrap.css" rel="stylesheet">

    <!--[if lte IE 8]>
    <script src="../assets/js/ie/es5-shim.min.js"></script>
    <script src="../assets/js/ie/es5-sham.min.js"></script>
    <script src="../assets/js/ie/html5shiv.js"></script>
    <script src="../assets/js/ie/respond.min.js"></script>
    <![endif]-->
</head>

【讨论】:

以上是关于列是 IE 8 中的全宽 - Css bootstrap的主要内容,如果未能解决你的问题,请参考以下文章

使用 Twitter BootStrap Css Toolkit 没有侧边栏时的全宽内容

css 强制固定容器内的全宽

wordpress主题expositio的全宽

css Foodie Pro Genesis儿童主题主页的全宽CSS调整

固定高度的全宽图像

div上的全宽背景颜色