如何使用ClientBundle将CSS应用于对话框?

时间:2010-08-30 19:26:57

标签: css gwt

我正在尝试通过ClientBundle将一些CSS应用于我的DialogBox子类。在检查DOM时,我可以看到添加了混淆的类名(class =“gwt-DialogBox GF2AVPFBPD”),但它不承担/应用任何属性/更改...

class RegistrationDialog 
  extends DialogBox 
{
  interface MyClientBundle 
    extends ClientBundle 
  {
    @Source("regDlg.css")
    MyCssResource css();
  }

  interface MyCssResource 
    extends CssResource 
  {
    String registrationDialog();
  }

  MyClientBundle myClientBundle = GWT.create(MyClientBundle.class);

  RegistrationDialog()
  {
    add(uiBinder.createAndBindUi(this));
    addStyleName(myClientBundle.css().registrationDialog());
  }
  ...

regDlg.css:

.registrationDialog
{
  background-image: url("logo.png") !important;
  background-color: red !important;
  color: red !important;
  font-size: xx-large !important;
}

我错过了什么?

1 个答案:

答案 0 :(得分:3)

您忘记调用CssResource.ensureInjected()。从文件;

在运行时,调用CssResource.ensureInjected()以注入样式表的内容。
- 这种方法可以安全地多次调用,因为后续调用将是无操作。
- 推荐的模式是在各种小部件类型的静态初始化程序中调用ensureInjected()

查看此question上的答案,了解更多代码信息。