通过前缀兼容浏览器的属性一定要连在一起写才能正常么?
抱歉时间..先不放 Demo.. 先描述一下我遇到的问题:
我有一段 CSS 代码, 是这样的:
.it-is-flex {
display: -webkit-flex;
-webkit-flex-direction: row;
display: -ms-flexbox;
-ms-flex-direction: row;
display: flex;
flex-direction: row;
}
这个在 OS X 的 Safari, Firefox, Chrome 都能正常跑的.
但是我跟其他的代码放在一起 cssmin 以后, 发现不生效了.
三个浏览器都能识别到属性, 显示在 Devtools, 但是就是不生效.
我回去看没有 cssmin 的版本, 依然很正常,,,
搞了好久好久, 按网上 Opera 文档某个例子改了一下顺序, 结果 cssmin 就正常了...
.it-is-flex {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-direction: row;
-ms-flex-direction: row;
flex-direction: row;
}
难以理解... 有同学遇到过或者知道原因的么?
添加一个测试:
两个 CSS 文件内容一样, 顺序不一样, 都通过
cleancss by-p.css
命令压缩:
flexbox 成功:
http://repo.tiye.me/flexbox-bug/by-prop.css
http://repo.tiye.me/flexbox-bug/by-prop.html
flexbox 失败:
http://repo.tiye.me/flexbox-bug/by-prefix.css
http://repo.tiye.me/flexbox-bug/by-prefix.html
cleancss 是 Grunt 的 cssmin 插件用的模块:
https://github.com/GoalSmashers/clean-css
文件目测是没有压缩损坏的.
另外调试过程中感觉是
display
只有最后一个能生效, 但是连在一起写又是对的.