首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GWT和CSS开发最佳实践

GWT和CSS开发最佳实践
EN

Stack Overflow用户
提问于 2012-03-20 04:48:03
回答 2查看 2.5K关注 0票数 5

我想知道在开发一个应用程序时,外部CSS开发人员参与设计站点的外观和感觉的最佳实践是什么?

理想情况下,他们将创建CSS文件,我们可以轻松地通过多次迭代将这些文件集成到站点中,开发团队将不必对这些文件进行任何操作(显然,会有HTML或模板更改来指向适当的类)。

GWT文档(http://code.google.com/webtoolkit/doc/latest/DevGuideUiCss.html)列出了四种方法:

使用宿主ClientBundle.

  • Using页面中的标记的
  1. ,使用模块XML文件中的元素的
  2. ,使用包含在CssResource中的CssResource的
  3. ,UiBinder模板中的内联元素。

文档表明,现代应用程序倾向于使用方法3和方法4,但是这些方法似乎对开发过程有侵扰性,因为我们不希望每次迭代(在方法3中)不断更新CssResource接口,也不希望将这些CSS文件分割成一行到我们的ui.xml文件(在方法4中)。

我们正在考虑使用方法2,并手工编码CSS类。这样我们就可以轻松地删除CSS文件更新,而不必让开发人员去触摸它们。我们将失去混淆,将有一些工作来管理对CSS名称的更改,尽管并不比其他方法更多。还有什么其他的考虑吗?

在涉及外部CSS设计人员的情况下,是否有构建GWT应用程序的最佳实践?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-21 03:05:07

如果您的团队不熟悉HTML/CSS/JS & GWT/Java,可能会出现问题。让我们假设你有摇滚的开端,你应该为之奋斗。然后,您希望获得以下CSS的好处:

没有字符串文字类名引用CSS类的CSS名称空间conflicts/pollution

  • Minimization (压缩选择器和CSS规则的properties)

  • Compiler优化(组合类似规则)),排除未使用的规则

  • 编译器检查CSS有效性和缺少的类

  • 在远程模式下运行DevMode时没有外部CSS文件的堆(否则浏览器会拉出远程CSS,而不是新的CSS )<>H 214F 215

我发现最好的方法是使用UiBinder & UiBinder的Java类,所有这些都在一个地方。见下面的例子。在我的经验中,这将产生最健壮的、压缩的、最快的、可靠的应用程序,并且不添加额外的文件。

一切都在一个地方:

  • CSS在UiBinder中定义,在UiBinder中使用
  • CSS接口定义在UiBinder文件中,其中使用

小部件

代码语言:javascript
运行
复制
class MyClass extends Widget {
    ... // jave UI binder class

    public interface MyStyle extends CSSBundle {
        String someClassName();
    }

    @UiField
    MyStyle style;

    ...
    something.setClassName(style.someClassName());
    ...
}

UiBinder

代码语言:javascript
运行
复制
<!-- UiBinder File -->
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'>

    <ui:style type='com.my.app.MyFoo.MyStyle'>
        .someClassName { background-color:pink; }
    </ui:style>

    <div class='{style.someClassName}'>Sample text.</div>

</ui:UiBinder>

我以前问过这个问题,看看here

票数 5
EN

Stack Overflow用户

发布于 2012-03-20 21:01:42

这里很难有一个“最佳实践”,因为四种不同的方法在不同的情况下都能很好地工作。根据使用GWT的方式,将确定要使用的最佳选项。

如果您的团队由A) Java专用和B) CSS/HTML组成,则选项1或2将有效。但是,如果您的UX角色理解GWT和CSS/HTML/XML的集成点(请阅读: UiBinder)。这个人可能知道如何最好地设置一个UiBinder,以便最大限度地利用赋予Java角色的功能。

UiBinder + ClientBundle为您的项目添加了额外的复杂性层。这带来了很多好处,但如果你的团队不太适合,你最终可能会造成太多的伤害。

“最佳实践”可能包括组织一个主CSS文件(通过ClientBundle或选项1或2),该文件的组织方式提供了整体应用程序的一致性,同时对本地内容使用UiBinders中的特定样式。

如果你想全力以赴,我认为你应该专注于最大限度地使用UiBinder和CssResource/ClientBundle (Externs /ClientBundel),以及通过

使用外部资源进行重用+增加一致性

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9781501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档