有一天,当我检查我在 sencha touch 2.2 中完成的应用程序时,它的布局完全被破坏了。我意识到我的 Chrome 已经从 28 自动更新到 29。它在 chrome 28 及更早版本,任何其他 webkit 浏览器中都能完美运行。当我检查示例应用程序来自 sencha touch 包,它似乎也坏了。我的客户也使用 chrome 29。如何解决 chrome 29 的这个布局问题?
3 回答
我有同样的问题,我修复了。
去
touch/resources/themes/stylesheets/sencha-touch/base/mixins/_Class.scss
在您的应用中
用以下内容替换mixin st-box
并使用 compass 重新编译您的 css:
@mixin st-box($important: no) {
@if $important == important {
display: flex !important;
display: -webkit-box !important;
display: -ms-flexbox !important;
} @else {
display: flex;
display: -webkit-box;
display: -ms-flexbox;
}
}
我也遇到了问题,我成功更新到 sencha 2.2.1。您可以使用 sencha cmd 使用命令 sencha upgrade 轻松升级您的项目。http://docs-origin.sencha.com/touch/2.2.1/#!/guide/command
在你的 touch framework 文件夹中打开以下 Sass mixin:resources/themes/stylesheets/sencha-touch/base/mixins/_Class.scss
搜索 st-box mixin,并将代码替换为://fix for chrome 29 bug。- 它只是切换显示规则的顺序//
@mixin st-box($important: no) {
@if $important == important {
display: flex !important;
display: -webkit-box !important;
display: -ms-flexbox !important;
} @else {
display: flex;
display: -webkit-box;
display: -ms-flexbox;
}
}
接下来要做的就是编译 Sass 样式表。你需要在你的机器上安装 Sass & Compass(和 Ruby)。在命令行上,浏览到文件夹: touch/resources/sass 并运行以下行:compass watch
这应该可以解决最新 Chrome 浏览器的 Sencha Touch 问题!(如果您没有安装 Sass/Compass 并且只想要生成的 app.css,请随时从此处下载 。http://www.ladysign-apps.com/developer/wp-content/uploads/ 2013/08/app.css