代码之家  ›  专栏  ›  技术社区  ›  Jaroslav Záruba

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

  •  0
  • Jaroslav Záruba  · 技术社区  · 14 年前

    我正试图通过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());
      }
      ...
    

    CSS:

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

    我错过了什么?

    1 回复  |  直到 14 年前
        1
  •  3
  •   Community CDub    8 年前

    您忘记调用cssresource.EnsureInjected()。从文件中;

    在运行时,调用cssresource.ensureinjected()以插入样式表的内容。
    -此方法可以安全地多次调用,因为随后的调用将是一个no-op。
    -建议的模式是在各种小部件类型的静态初始值设定项中调用EnsureInjected()。

    看看这个问题的答案 question 获取更多代码信息。