不应用使用默认GWT CSS类名的UiBinder内联样式

Mic*_*elB 5 css gwt uibinder

我正在使用GWT与UiBinder,我不知道如何能够让默认的CSS样式规则正常工作.到目前为止,我已经通过分配自定义CSS类名来成功设置我的组件样式,如下所示:

<ui:style>
    .createButton {
        background-color: red;
    }
</ui:style>

<g:FlowPanel>
   <g:Button styleName="{style.createButton}">Create</g:Button>
</g:FlowPanel>
Run Code Online (Sandbox Code Playgroud)

但是当使用GWT的默认CSS类名时,如下例所示,该样式根本不应用:

<ui:style>
    .gwt-Button {
        background-color: red;
    }
</ui:style>

<g:FlowPanel>
   <g:Button>Create</g:Button>
</g:FlowPanel>
Run Code Online (Sandbox Code Playgroud)

我认为它可能与GWT处理UiBinder类名的方式有关.在将UiBinder样式名设置为{style.createButton}后,当我使用Firebug检查Web应用程序中的按钮时,它使用某种混淆的类名:

class="GBMSFK0DJJ"
Run Code Online (Sandbox Code Playgroud)

当我在没有分配任何类名后检查它时,它说:

class="gwt-Button"
Run Code Online (Sandbox Code Playgroud)

虽然按钮似乎具有正确的类名,但是我未在UiBinder样式部分中定义的样式.我错过了什么或这是一个错误吗?

(如果你想知道为什么我不只是将自己的自定义样式名称分配给按钮:我实际上是尝试使用.gwt-TreeItem来设置TreeItems的样式,但是按钮类可能是一个更好的例子.)

Tho*_*yer 10

.gwt-Button在你的ui:style遗嘱将被混淆,因此将不适用于class="gwt-Button".

你必须标记它@external不被混淆:

@external .gwt-Button;

.gwt-Button { background-color: red; }
Run Code Online (Sandbox Code Playgroud)