【问题标题】:How to add styleDependent names programmatically?如何以编程方式添加 styleDependent 名称?
【发布时间】:2013-04-07 19:17:14
【问题描述】:

我正在尝试创建一个单独的 Button css 类,它应该可以通过 ClientBundle 访问。我的目标是通过应用程序状态以编程方式更改按钮样式。

以下应用按钮样式,但不更改背景,因此不知何故不考虑 -ok 依赖样式名。为什么?

.myButton {
    background: white;
}

.myButton-ok {
    background: green;
}

public interface MyButtonResource extends ClientBundle {
    public static final MyButtonResource INSTANCE = GWT.create(MyButtonResource.class);

    @Source("MyButtonResource.css")
    Style css();

    interface Style extends CssResource {
        @ClassName("myButton")
        String buttonStyle();

        @ClassName("myButton-ok")
        String buttonStyleOK();
    }
}


MyButtonResource.INSTANCE.css().ensureInjected();
setStyleName(MyButtonResource.INSTANCE.css().buttonStyle());
button.addStyleDependentName(MyButtonResource.INSTANCE.css().buttonStyleOK());

【问题讨论】:

    标签: java css gwt


    【解决方案1】:

    您不能 addStyleDependentName 使用混淆的 css 资源,请参阅此 issue

    问题在于addStyleDependentName 将后缀-ok 附加到当前样式button 将元素的样式设置为button-ok

    但是当混淆器起作用时,在你的资源中你会得到AA 对应buttonAB 对应button-ok。因此,在以 OK 状态应用您的代码后,您的按钮将具有 AA-AB,这与您的 css 部分中的任何规则都不匹配。

    解决这个问题的唯一方法是为您的小部件添加第二种样式,我会这样做:

    button.addStyleName(MyButtonResource.INSTANCE.css().buttonStyleOK());

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-01
      • 2016-11-23
      • 2012-09-16
      • 2014-07-03
      • 2016-04-02
      • 1970-01-01
      相关资源
      最近更新 更多