【问题标题】:make css grid compatible with microsoft browser [duplicate]使css网格与微软浏览器兼容[重复]
【发布时间】:2018-06-27 14:45:54
【问题描述】:

我正在尝试构建一个 css 布局网格,我正在以这种方式使用网格速记属性:

body{
grid:
        [row-one] "grid-col-1 grid-col-1" 1fr [row-one-end]
        / 1fr 1fr;

}

现在,我只使用 fr 单位,所以我决定这样做:

@mixin grid-template($row,$col){
  grid: repeat($row, 1fr) / repeat($col,1fr)
}

然后在我的正文 css 中:

@include grid-template(1,2);

这是一个正确的方法吗?以及如何使用 -ms- 前缀?像

@mixin grid-template($row,$col){
      grid: repeat($row, 1fr) / repeat($col,1fr)
      -ms-grid: repeat($row, 1fr) / repeat($col,1fr)
    }

可以吗?谢谢

【问题讨论】:

  • css 网格目前仅在候选推荐中,因此,微软尚未完全实现它。他们使用 -ms- 有部分支持,但我认为它适用于 outdated version of grid,因此可能不会像您期望的那样工作。更多信息可以在这里找到:developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/…
  • 有一些关于实现回退的好文章。例如chenhuijing.com/blog/basic-grid-with-fallbacks
  • @Pete 目前所有主流浏览器都实现了网格,除了 Opera 和 UC。 IE 永远无法完全获得该功能。
  • @Pete Edge 16(去年 10 月发布)支持网格,尽管网格仍然是候选推荐。
  • 啊酷,我打算编辑我​​上面的评论说 在 ie 中实现它,但是当我意识到 edge 现在支持它时却无法做到

标签: html css sass css-grid


【解决方案1】:

不确定您所说的“微软浏览器”是什么意思,但 Edge 16(当前版本)is compatible 与 CSS 网格没有问题。

对于 Internet Explorer,版本 10 和 11 与旧的网格布局规范兼容,该规范受到更多限制并具有different property names。因此,仅添加 -ms 是不行的,您需要注意属性名称的差异。 Autoprefixer 可以为您做到这一点,但您需要设置该选项,因为它默认处于禁用状态。

就我个人而言,我只会为 IE 提供浮动、内联块、flex 等的后备服务。 CSS Grid 规范is extremely good at overriding any of those fallbacks,所以应该很流畅。

【讨论】:

  • 我目前正在使用 flexboxes 实现一个后备 css,看起来还不错,布局也没什么不同,flexboxes 也得到了很好的支持
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-27
  • 1970-01-01
  • 2014-03-16
相关资源
最近更新 更多