我在UiBinder上使用GWT,但我无法设法让默认的CSS样式规则正常工作。到目前为止,我已经成功地通过分配自定义CSS类名来设置我的组件样式,如下所示:
<ui:style>
.createButton {
background-color: red;
}
</ui:style>
<g:FlowPanel>
<g:Button styleName="{style.createButton}">Create</g:Button>
</g:FlowPanel>
但是当使用GWT的默认CSS类名时,如下例所示,该样式根本不应用:
<ui:style>
.gwt-Button {
background-color: red;
}
</ui:style>
<g:FlowPanel>
<g:Button>Create</g:Button>
</g:FlowPanel>
我认为它可能与GWT处理UiBinder类名的方式有关。在将UiBinder样式名设置为{style.createButton}后,当我使用Firebug检查Web应用程序中的按钮时,它使用某种混淆的类名:
class="GBMSFK0DJJ"
当我在没有指定任何类名后检查它时,它说:
class="gwt-Button"
虽然按钮似乎具有正确的类名,但是我没有应用我在UiBinder样式部分中定义的样式。我错过了什么或这是一个错误吗?
(如果你想知道为什么我不只是将自己的自定义样式名称分配给按钮:我实际上是尝试使用.gwt-TreeItem设置TreeItems的样式,但是按钮类可能是一个更好的例子。)
答案 0 :(得分:10)
.gwt-Button
中的 ui:style
将被混淆,因此不会应用于class="gwt-Button"
。
您必须将其标记为@external
,因为它不会被混淆:
@external .gwt-Button;
.gwt-Button { background-color: red; }