我试图通过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;
}
我想念什么?
最佳答案
您忘记了调用CssResource.ensureInjected()。从文档;
在运行时,调用CssResource.ensureInjected()以注入样式表的内容。
-此方法可以安全调用多次,因为后续调用将是无操作的。
-推荐的模式是在各种小部件类型的静态初始值设定项中调用sureInjected()
在此question上查看答案,以获取更多代码信息。