在运行时更改ListBox css属性

时间:2015-02-12 03:12:02

标签: gwt

我有一个ListBox:

ListBox lb = new ListBox();

这是我对列表框的默认css:

.gwt-ListBox {
  background: transparent;
  padding: 5px;
  border: 1px solid #222;
  color: #555;
  text-shadow:1px 1px 0px #ffffff;
  text-decoration:none;
  font-family:arial;
  height: 40px;
  font-size:16px;
  font-weight:bold;
  cursor: pointer;
}

我想在运行时修改背景:

lb.getElement().getStyle().setBackgroundColor("#aaa");

这似乎删除了所有样式,我得到一个非常难看的列表框。我做错了什么?

由于

1 个答案:

答案 0 :(得分:0)

一种工作且更易于维护的方法是使用CSS客户端捆绑包,请参阅:

http://www.gwtproject.org/doc/latest/DevGuideClientBundle.html

http://www.gwtproject.org/doc/latest/DevGuideUiCss.html

将您想要改变的样式部分放在CssResource中并应用额外的样式。为了让您了解如何执行此操作:

MyWidget.css:

.backgroundA {
  background: #aaa;
}

MyWidget.java:

interface MyWidgetCssResource extends CssResource {
  String backgroundA();
}

MyWidgetCssResource resource;

lb.getElement().addStyleNames(resource.backgroundA());