1

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

  1. 在 HTML 主机页面中,您可以放置​​指向外部样式表的 HTML 链接,例如MyWebApp/war/hello_gwt.html包含以下行:<link type="text/css" rel="stylesheet" href="mywebapp/webModule.css">
  2. 通过使用实现ClientBundles 使您的应用程序可以访问绑定的CssResource子类
  3. 通过 UI Binder XML
  4. 您可以在 gwt.xml 文件中包含主题/样式,例如<inherits name="com.google.gwt.user.theme.standard.Standard"/>

我对这四个中的每一个应该完成什么工作感到困惑。换句话说,这些“CSS 机制”如何协同工作,为 Web 应用程序提供所需的所有样式,或者它们只是完成同一件事的不同方式?它们在不同的场景中是否都有不同的优点/缺点,如果是,它们是什么?

我喜欢使用LayoutorLayoutPanel来定位我的应用程序的主要显示区域,然后使用 CSS 设置各个区域、容器等的样式的策略。所以看起来上面的第一种情况(HTML 外部 CSS 链接)不会是什么我一直在寻找,看到我希望随着 UI 的发展为每个新小部件自定义 CSS。

我想我只是在尝试在 GWT-land 中的 CSS 选项之间进行选择时寻找一个试金石。提前致谢!

4

2 回答 2

1

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

如果您将样式放在 UI 活页夹中,它将仅在此 UI 活页夹中可见,因此您不能(轻松)将其重用于其他类。但是,这种方式可以更轻松地保持样式整洁,因为您可以在一个地方看到用于组件的所有样式。

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

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

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

于 2012-11-06T12:57:43.137 回答
1

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

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

外部 CSS 和 CssResource 方法之间还有其他区别。

CSS 文件是一种更传统的方法。它更易于使用,并且对 UI 设计人员来说更容易使用。

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

于 2012-11-06T13:52:39.990 回答