0

我想在 GWT MenuBar 中设置/标记 MenuItem 的样式。所以我有一些逻辑可以为菜单项添加样式名称(逻辑工作正常)。

mItem.setStyleName("menuItemMarked", true);

使用此设置 getStyleName 按预期产生“gwt-MenuItem menuItemMarked”。

但是如何在 css 中使用/应用这种样式(目前我将 css 放在 uibinder.xml 中)?(如您所见,我不是 CSS 专家)

更新:我试过的

.menuItemMarked{background-color: yellow}

这是行不通的。如果我调用“检查元素”(chrome)我可以看到“class =”gwt-MenuItem menuItemMarked”但我在应用样式列表中找不到样式“menuItemMarked”?!

4

2 回答 2

4

你在哪里指定你的 CSS?

如果您的代码位于您的代码包中,那么它很可能被 GWT 编译器混淆了。这适用<ui:style>于文件中的块.ui.xml,以及.cssClientBundles 中包含的文件。

在这种情况下,您需要查看GWT 文档中的Programmatic Access to Inline Styles。这将允许您将代码更改为:

mItem.setStyleName(style.menuItemMarked(), true);

或者,您可以告诉 GWT 不要混淆某些 CSS 类。这是对类似问题的详细回答


最后,如果 GWT 没有触及您的 CSS 文件(它像其他文件一样从您的服务器提供),那么您需要确保您的文件正确地包含在您的页面中。您的浏览器的开发工具应该能够提供帮助。

于 2012-07-06T14:10:49.373 回答
1

确保在 CSS 中指定正确的选择器名称。在这种情况下,您需要具备以下条件:

.gwt-MenuItem.menuItemMarked {
    background-color: yellow;
}

由于gwt-MenuItem仍然是列表中的第一个类名,因此它优先background-color于后续类中定义的任何样式(包括 )。推翻这一点的唯一方法是使用更具体的选择器定义样式,如上面。查看此链接以获取更详细的说明。

于 2012-07-07T02:08:53.613 回答