在CSS属性中访问GWT ImageResource?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

我们理解了创建ImageResource的Google/GWT示例:

interface MyResources extends ClientBundle {
  @Source("image.png")
  ImageResource image();

  @Source("my.css");
  CssResource css();
}

@sprite .myImage {
  gwt-image: 'image';
}

不过,我了解如何使用ImageResources并应用样式名称。

在我的应用程序中,我有多个主题,它们使用CSS和延迟绑定应用于各种小部件。因此,我定义了一个CSS规则(background),我想使用.myImage类,但是它不起作用:

background {
    background-attachment: fixed;
    background-image: .myImage;  //??  This is the question!
    background-size: contain
}

backgroundCSS属性中使用.myImage类的语法是什么?看来我应该能够指定.myImage类作为背景图像的参数。

编辑:做了一些更多的研究,并找到了正确的语法来使用DataResource来实现这一点。

MyClientBundle extends ClientBundle {

    //Background Image
    @Source("resources/background.png")
    DataResource backgroundImage();

}

(mypanel.css)

@url background backgroundImage;

.myPanel {
    border-radius: 0px;
    background-color:#ffffff;
    opacity:0.6;
    background-image: background;
}
提问于
用户回答回答于

你可以像这样使用myResources.css.myImage。我的意思是,在UiBinder中,无论你想使用哪种样式,都可以使用styleName属性具有此值。

在你的情况下,无论你在何处应用类.myPanel,你可以应用styleName='myResources.css.myImage',以应用背景图像。

如果你想在java中使用这个(即,没有UiBinder),你可以这样使用

MyResources myResources = GWT.create(MyResources.class);
widget.setStyleName("myResources.css.myImage");

用户回答回答于

如果你把myImage作为样式名称加到任何部件上,它将设置这些部件的背景。

扫码关注云+社区