我想在GWT MenuBar中设置/标记一个MenuItem。所以我有一些逻辑,为菜单项添加一个样式名称(逻辑工作正常)。
mItem.setStyleName("menuItemMarked", true);
使用此set getStyleName按预期产生“gwt-MenuItem menuItemMarked”。
但是如何在css中使用/应用这种风格(目前我把css放在uibinder.xml中)? (你可能看到我不是css专家)
更新:我尝试的是that。
.menuItemMarked{background-color: yellow}
这不起作用。如果我称之为“检查元素”(chrome)我可以看到“class =”gwt-MenuItem menuItemMarked“但我在找到的样式列表中找不到样式”menuItemMarked“?!
答案 0 :(得分:4)
您在哪里指定CSS?
如果您的代码位于代码包中,则可能会被GWT编译器混淆。这适用于<ui:style>
文件中的.ui.xml
块和ClientBundles中包含的.css
个文件。
在这种情况下,您需要从GWT文档中查看Programmatic Access to Inline Styles。这样您就可以将代码更改为:
mItem.setStyleName(style.menuItemMarked(), true);
或者,您可以告诉GWT不要混淆某些CSS类。 Here is a detailed answer to a similar question
最后,如果GWT没有触及您的CSS文件(它是从您的服务器提供的,就像其他文件一样),那么您需要确保您的文件正确地包含在您的页面中。您的浏览器的开发工具应该能够提供帮助。
答案 1 :(得分:2)
确保在css中指定正确的选择器名称。在这种情况下,您需要具备以下条件:
.gwt-MenuItem.menuItemMarked {
background-color: yellow;
}
由于gwt-MenuItem
仍然是列表中的第一个类名,因此它优先于后续类中定义的任何样式(包括background-color
)。否定这一点的唯一方法是使用上面更具体的选择器定义样式。请查看this link以获取更详细的说明。