Flexbox:Autoprefixer 添加了一个破坏 Safari 的 css 属性

Posted

技术标签:

【中文标题】Flexbox:Autoprefixer 添加了一个破坏 Safari 的 css 属性【英文标题】:Flexbox: Autoprefixer adding a css property that is breaking Safari 【发布时间】:2015-09-01 10:16:31 【问题描述】:

当我添加时

   display: flex;

在我的容器 div 中,autoprefixer(我正在使用带有“grunt-autoprefixer”的 Grunt:“^3.0.3”)添加:

  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;

问题是,我的布局在 Safari 中因

而中断
  display: -webkit-box;

如果我让它显示:-webkit-flex 一切都很好。关于如何禁用此功能的任何想法?

【问题讨论】:

“中断”是什么意思?你能加入minimal, complete, and verifiable example吗? 对不起,意思是:盒子位于容器之外。事实证明,我需要更改-webkit-box(用于旧版浏览器)和-webkit-flex 的顺序。 -webkit-flex 应该是最后一个,否则 Safari 会读取旧版本。 【参考方案1】:

原始发帖人在他们的评论中回答了这个问题,但只是为了回顾一下,Safari(无论如何是 8 个)想要 -webkit-flex,根据您的设置,哪个自动前缀不会吐出(或者可能根本没有,我没有实际上尝试修改设置)。如果你的 CSS 看起来像:

display:flex;
display:-webkit-flex;

它似乎修复了它,因为自动前缀输出现在将是:

display: flex;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;

对于任何其他 flexbox 属性也是如此,所以:

display:flex;
display:-webkit-flex;
flex-direction:column;
-webkit-flex-direction:column;
justify-content: center;
-webkit-justify-content:center;

【讨论】:

以上是关于Flexbox:Autoprefixer 添加了一个破坏 Safari 的 css 属性的主要内容,如果未能解决你的问题,请参考以下文章

flex兼容性问题

为啥 flexbox 代码在 Safari 5 和 6 中不起作用?

做出反应。如何添加 autoprefixer 包并进行配置?

webstorm 添加 autoprefixer 工具为CSS加前缀

在 parcel.js 中为已部署的网站添加 Autoprefixer 会破坏所有网站样式?

gulp插件autoprefixer