不支持 flexbox 遗留的 CSS flexbox SASS mixin

标签 css internet-explorer sass flexbox

有没有办法在使用 SASS mixin 时支持没有 flexbox legacy(IE) 的浏览器?

我正在使用下面的 mixin 来快速实现 display:flex。尽管我在使用 IE 时遇到了一些问题,但由于我确实必须针对我使用 mixin 将其切换到 display:tabledisplay:table-cell 的每个类使用 modernizr ,因为 display:flex 在某些浏览器上不完全支持。

@mixin flexbox() {
    display: -webkit-box !important;
    display: -moz-box !important;
    display: -ms-flexbox !important;
    display: -webkit-flex !important;
    display: flex !important;
}

如果我的 mixin 在 body 中,并且有 flexboxlegacyno-flexboxlegacy 类,我是否可以对其进行调节?

最佳答案

@mixin flexbox() {
  display: flex;

  .no-flexboxlegacy & {
    display: table;
  }
}

a b c {
  @include flexbox();
}

编译为:

a b c {
  display: flex;
}

.no-flexboxlegacy a b c {
  display: table;
}

关于不支持 flexbox 遗留的 CSS flexbox SASS mixin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56574479/

相关文章:

jquery - 为什么将鼠标悬停在父元素上时某些动画不会针对某些图标运行?

html - 如何将一个图像放入另一个图像并将文本和一个小图像放入该图像(最后一个)?

sass - 如何在数据 :image string? 中使用 sass 字符串替换

html - css 如何制作具有滚动支持的全高 div?

javascript - 如果浏览器 lt ie10,图像会淡出

css - IE8及以下MS滤镜与RGBa不一样

javascript - IE9 window.opener问题

css - 如何在 variables.scss 中导入颜色

sass - '&'选择器选择什么?

html - CSS:将动态大小的 div 堆叠在一起(使用 z-index)