我有2个CSS文件,为同一CSSResource定义2套CSS规则。我可以以某种方式应用某种范围,以使一个css文件中的样式不覆盖另一css文件中的样式吗?
一个简化的例子:
CSSResource
public interface Style extends CssResource {
String box_bkg();
}
样式1.CSS
.box_bkg {
background-color: red;
}
样式2
.box_bkg {
background-color: yellow;
}
客户捆绑
public interface BoxBundle extends ClientBundle {
@Source("css/Style1.css")
MyClass.Style redBoxStyle();
@Source("css/Style2.css")
MyClass.Style yellowBoxStyle();
}
当我查看生成的HTML时,我发现混淆的类名是相同的,而不管它来自哪个BoxBundle方法。因此,这些框全是黄色或红色。如果混淆的名称相同,如何对框进行样式设置?
谢谢
最佳答案
混淆的类名是从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