GWT CSS选择:使用哪个,何时以及为什么?

时间:2012-11-06 11:45:11

标签: java css gwt

到目前为止,我已经考虑了四(4)个不同的地方,GWT开发人员可以将CSS注入Web应用程序:

  1. 在HTML主机页面中,您可以将HTML链接放置到外部样式表,例如MyWebApp/war/hello_gwt.html包含以下行:<link type="text/css" rel="stylesheet" href="mywebapp/webModule.css">
  2. 通过实施ClientBundle来实现您的应用访问绑定的CssResource子类
  3. 通过UI Binder XML
  4. 您可以在gwt.xml文件中添加主题/样式,例如<inherits name="com.google.gwt.user.theme.standard.Standard"/>
  5. 我对这四个人应该完成的工作感到困惑。换句话说,这些“CSS机制”如何协同工作,为Web应用程序提供所需的所有样式,或者它们只是完成相同事物的不同方式?他们每个人在不同情况下都有不同的利弊,如果是,他们是什么?

    我喜欢使用LayoutLayoutPanel定位应用主要显示区域的策略,然后使用CSS来设置各个区域,容器等的样式。所以看起来像是上面的第一个案例(HTML外部CSS链接)将成为我正在寻找的东西,看到我想在我的UI发展过程中为每个新窗口小部件自定义CSS。

    我想在尝试在GWT-land中选择我的CSS选项时,我只是想寻找一个石蕊。提前谢谢!

2 个答案:

答案 0 :(得分:1)

1.和3.(css文件和ui binder xml)是执行相同操作的不同机制。

如果将样式放在UI绑定器中,它将仅在此ui绑定器中可见,因此您不能(轻松地)将其重用于其他类。但是,这样可以更容易保持样式清洁,因为您可以在一个位置看到组件使用的所有样式。

如果将样式放在CSS中,则可以为不同的组件重用样式,但在处理小部件时需要编辑两个文件。

当然,您可以同时使用它们:UI活页夹样式和“单独的CSS文件”。

4.只是您使用的GWT预定义样式的通知。 GWT具有所有小部件的默认样式,此继承告知应用程序中将使用哪种样式。

答案 1 :(得分:1)

我强烈建议不要在Ui:Binder中定义样式。这使得在整个应用程序中维护和确保样式一致性变得非常困难。最佳做法是将所有CSS保存在一个位置。

您可以使用外部CSS方法和CssResource“为每个新窗口小部件自定义样式”。使用外部文件,您只需使用此文件中的类名来设置样式。随着UI的发展,您可以添加新类或修改现有类。您也可以使用外部CSS文件轻松创建主题。

外部CSS和CssResource方法之间存在其他差异。

CSS文件是一种更传统的方法。它更易于使用,UI设计人员也可以更轻松地使用它。

另一方面,CssResource在许多开发人员的大型项目中更容易维护。它还提供了许多有用的功能,如条件CSS,模糊处理,运行时替换等。