【问题标题】:Improve IE compatibility for elastic layout提高弹性布局的 IE 兼容性
【发布时间】:2014-04-02 13:25:34
【问题描述】:

我有这个弹性布局,它可以在 Chrome 和任何主要浏览器中完全按照我的要求工作,除了忽略 @media 查询的 IE。

http://jsfiddle.net/U2W72/17/embedded/result/

* {margin: 0px; padding 0px'}

.thumb {
    float: left;
    width:16.8%;
    margin-left: 2%;
    margin-right: 2%;
    margin-bottom: 4%;
    background: pink;
    height: 200px;
}
.thumb:nth-child(5n) {
    margin-right: 0px;
}
.thumb:nth-child(5n+1) {
    margin-left: 0px;
}
@media (max-width: 1200px) {
    .thumb, .thumb:nth-child(1n) {
        width:22%;
        margin-left: 2%;
        margin-right: 2%;
        margin-bottom: 4%;
    }
    .thumb:nth-child(4n) {
        margin-right:0;
    }
    .thumb:nth-child(4n+1) {
        margin-left:0;
    }
}
@media (max-width: 600px) {
    .thumb, .thumb:nth-child(1n) {
        width:48%;
    }
    .thumb:nth-child(2n) {
        margin-right:0;
    }
    .thumb:nth-child(2n+1) {
        margin-left:0;
    }
}
@media (max-width: 400px) {
    .thumb, .thumb:nth-child(1n) {
        width:100%;
        margin-left: 0px;
        margin-right: 0px;
    }
}

问题

虽然我对它的弹性方面不起作用,但它是媒体查询告诉它在左右项目上没有边距,并且由于 IE 不读取它,它确实给它一个边距,这使得它太宽,并从末端掉落了第 5 个框。

问题

如何让 IE 的 5 列布局优雅地降级,而不会将第 5 项放到下一行。

可能的解决方案

  • 编写一个仅限 IE 的 CSS 规则,将 IE 中的框宽度设置为 16% 而不是 16.8%
  • 将默认布局设为 16%,然后使用 @media 将宽度覆盖为 16.8% 以适应兼容的浏览器

我愿意接受任何想法或建议。谢谢!

【问题讨论】:

    标签: html css internet-explorer cross-browser


    【解决方案1】:

    您的 CSS 中有语法错误:

     * {margin: 0px; padding 0px'}
    

    这会导致您的所有 CSS 规则都被忽略。您正在用单引号关闭填充,删除它。

    我也认为如果你使用 display:inline-block;你会发现一个不错的流体网格布局。

    【讨论】:

      【解决方案2】:

      在头中包含元标记..

      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      
      <!--[if lt IE 9]>
          <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
      <![endif]-->
      

      【讨论】:

      • 虽然 JS 解决方案可以工作,但我很高兴不支持 IE 用户,我只是希望默认的 5 列布局适合他们
      猜你喜欢
      • 2016-06-20
      • 1970-01-01
      • 2010-12-18
      • 2017-05-30
      • 2012-10-11
      • 1970-01-01
      • 2011-07-01
      • 1970-01-01
      • 2015-09-17
      相关资源
      最近更新 更多