我可以将范围应用于GWT CSS混淆的类名

时间:2013-01-14 23:30:15

标签: css gwt

我有2个CSS文件,为同一个CSSResource定义了2套CSS规则。我可以以某种方式应用某种范围,以便一个css文件中的样式不会覆盖其他css文件中的样式吗?

简化示例:

CSSResource

public interface Style extends CssResource {
String box_bkg();
}

Style1.CSS

.box_bkg {
background-color: red;
}

Style2.CSS

.box_bkg {
background-color: yellow;
}

ClientBundle

public interface BoxBundle extends ClientBundle {
    @Source("css/Style1.css")
    MyClass.Style redBoxStyle();

    @Source("css/Style2.css")
    MyClass.Style yellowBoxStyle();
}

当我查看生成的HTML时,我发现无论它来自哪个BoxBundle方法,混淆的类名都是相同的。所以盒子都是黄色或红色。如果混淆的名称相同,我如何以不同方式设置方框?

由于

1 个答案:

答案 0 :(得分:1)

模糊的类名是根据CssResource子接口和方法名称计算的。如果您需要不同的类名,则必须至少创建一个MyClass.Style的子接口,并将其用作BoxBundle中方法的返回类型;目标是这两种方法有不同的返回类型:

public interface BoxBundle extends ClientBundle {
   @Source("css/Style1.css")
   Style1 redBoxStyle();

   @Source("css/Style2.css")
   Style2 yellowBoxStyle();

   interface Style1 extends MyClass.Style { }
   interface Style2 extends MyClass.Style { }
}

另见https://code.google.com/p/google-web-toolkit/issues/detail?id=6144