由于我的应用程序变大了,我决定我的应用程序的每个“模块”都有自己的资源文件、样式文件和 GSS 文件。此外,例如按钮的样式将在不同的全局 GSS 文件中,因为它更像是一种应用程序样式,通过应用程序使用。
这不是问题,但是当我想做这样的事情时:
.buttonGroup>.button.active{ background-color: red}
在其中一个模块中,它不匹配任何内容。
由于按钮样式(buttonGroup, button, active)和行为(单击时添加“活动”类)是在不同的(全局)GSS 文件中指定的,因此我无法更改“活动”类的样式。
这是一个简化的示例:
public interface AppResources extends ClientBundle {
public static AppResources INSTANCE = GWT.create(AppResources.class);
@Source({"style.gss"})
AppStyle appStyle();
}
样式文件:
public interface AppStyle extends CssResource {
String buttonGroup();
String button();
String active();
}
模块:
public interface ModuleResources extends AppResources{
public static ModuleResources INSTANCE = GWT.create(ModuleResources.class);
@Source({"style.gss","module.gss"})
ModuleStyle moduleStyle();
}
样式文件:
public interface ModuleStyle extends AppStyle {
}
在 GSS 文件中,我尝试使用 @provide 和 @require(没有它就无法编译,因为它会丢失标识符或类)。
然后它编译得很好,但是 buttonGroup、button 甚至活动类都被视为属于 AppStyle,因此使用 style.gss 样式和规则:
.buttonGroup>.button.active{ background-color: red}
在 module.gss 中没有匹配任何东西,因为它可能正在寻找.hash-ModuleStyle-buttonGroup、.hash-ModuleStyle-button和.hash-ModuleStyle-active类,而按钮上的实际样式是.hash-AppStyle-buttonGroup等等