我在ListBox上的自定义样式不适用?它是IE 7.0的浏览器问题

时间:2012-12-05 10:17:15

标签: css gwt uibinder gwt-platform

我一直在尝试将一些自定义样式应用到我的ListBoxes,但样式不适用以下是CSS

.gwt-ListBox{
 background: #fff;
 border: 1px solid #96CAEA;
}

我已经在IE中检查了我的代码,而我所说的不是实体,而是从Standard.css中选择插入,我也尝试使用新的css类,如

.listBox{
 background: #fff;
 border: 1px solid #96CAEA;
} 

这也给出了同样的结果我的方法有什么不对, 谢谢,

3 个答案:

答案 0 :(得分:1)

GWT的概念为themes

如果您继承了一个主题,它将覆盖您的样式。使用firebug查找计算的样式,下载的样式表和应用的样式。一旦你看到firebugs信息就很容易解决它。

enter image description here

如果您需要进行大量自定义,如果在GWT中使用 clean 主题会更容易。

如果您使用标准主题并且坚持使用它。您需要在.listbox stylename

中使用!important标记
.listBox{
 background: #fff;
 border: 1px solid #96CAEA !important;
}

使用!important被认为有点不整洁或hackey方法:)

答案 1 :(得分:0)

尝试使用以下方法解决边框问题

border: 1px solid #96CAEA !important;

答案 2 :(得分:0)

您可以设置UIOBject的清晰度以清除ListBox 主要CSS主题并添加您想要的主题。

E.g

ListBox list = new ListBox();
list.setStylePrimaryName("listBox");

属性JavaDOC

"Sets the element's primary style name and updates all dependent style names."

注意:你需要在你的ui文件中添加这个css,或者你可以创建一个CSSResource来重新引用你的CSS文件

interface ListBoundle extends ClientBundle{
    ListBundle INSTANCE = GWT.create(ListBundle.class); 

    interface ListBoxCssResource extends CssResource {
        String listBox();
    }
    @Source("package.listBox")
    @CssResource.NotStrict
    ListBoxCssResource css();
}

然后设置指向

的属性
String listBox();

ListBox list = new ListBox();
list.setStylePrimaryName(ListBoundle.ListBoxCssResource.listBox());

要在UiBinder中使用,您必须使用标记。

E.g

<ui:style>
    .gwt-ListBox{
          background: #fff;
          border: 1px solid #96CAEA;
    }
</ui:style>

<g:ListBox styleName="{style.gwt-ListBox}"/>

但是使用外部资源工作更好。

有关详细信息,请参阅this