使 css 网格与微软浏览器兼容
make css grid compatible with microsoft browser
我正在尝试构建一个 css 布局网格,我以这种方式使用网格 shorthand 属性:
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)
}
有用吗?谢谢
不确定 "microsoft browser" 是什么意思,但是 Edge 16(当前版本)is compatible 和 CSS 网格没有问题。
至于 Internet Explorer,版本 10 和 11 与较旧的网格布局规范兼容,该规范更受限制并具有 different property names。因此,仅添加 -ms
是不行的,您需要注意 属性 名称差异。 Autoprefixer 可以为您完成此操作,但您需要设置该选项,因为它默认处于禁用状态。
就我个人而言,我只会为 IE 提供浮动、内联块、flex 等后备服务。 CSS 网格规范is extremely good at overriding any of those fallbacks,所以应该很顺利。
我正在尝试构建一个 css 布局网格,我以这种方式使用网格 shorthand 属性:
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)
}
有用吗?谢谢
不确定 "microsoft browser" 是什么意思,但是 Edge 16(当前版本)is compatible 和 CSS 网格没有问题。
至于 Internet Explorer,版本 10 和 11 与较旧的网格布局规范兼容,该规范更受限制并具有 different property names。因此,仅添加 -ms
是不行的,您需要注意 属性 名称差异。 Autoprefixer 可以为您完成此操作,但您需要设置该选项,因为它默认处于禁用状态。
就我个人而言,我只会为 IE 提供浮动、内联块、flex 等后备服务。 CSS 网格规范is extremely good at overriding any of those fallbacks,所以应该很顺利。