我有一个带配置属性的Gwt小部件库:
<set-configuration-property name="CssResource.style" value="stable-notype"/>
预计将保留原始css名称,然后是css文件(示例)
.invader {
width: 400px;
height: 400px;
background-color: #DBDBDB;
}
.invader .button {
background-image: url('merged.png');
width: 64px;
height: 64px;
background-position: 0px 64px;
background-color: #BA6622;
}
之后,生成的css资源
interface WidgetStyle extends CssResource {
String button();
String invader();
}
当我在WidgetStyle实例(和/或)上调用ensureInjected()时,以编程方式使用样式/在ui:binder中使用例如。
<ui:style src="WidgetStyle.css" field="style" />
<g:HTMLPanel styleName="{style.invader}" ui:field="panel" />
然后,在浏览器中的结果html文件中,而不是一个注入的css样式,我有四个定义的选择器:
.org-invader-widget-client-WidgetStyle-invader;
.org-invader-widget-client-WidgetStyle-invader .org-invader-widget-client-WidgetStyle-button;
.org-invader-widget-client-MyWidget_UIImpl_GenCss_style-invader;
.org-invader-widget-client-MyWidget_UIImpl_GenCss_style-invader .org-invader-widget-client-MyWidget_UIImpl_GenCss_style-button;
这些对使用不同的名称复制上面的样式。我看到第二对来自&#34; MyWidget拥有&#34;样式,但是如何强制所有应用程序只使用我在.css文件中定义的那些css类而不进行任何混淆?
此外,第二对css-classess未能正确应用。只应用第一个,第二个不匹配。
我在这里做错了什么?
答案 0 :(得分:0)
好的,我发现用
访问css<ui:style ... />
注入样式和css类可能会获得额外的前缀,正确的方法是使用ClientBundle访问样式
<ui:with ... >
默认情况下,混淆覆盖不起作用&#39;在* .gwt.xml中的SuperDevMode中,如果我是对的,则必须使用DevMode运行参数进行配置。