首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWT在另一个GSS文件中重写GSS样式。

GWT在另一个GSS文件中重写GSS样式。
EN

Stack Overflow用户
提问于 2017-09-12 17:34:49
回答 2查看 329关注 0票数 0

由于我的应用程序变得更大,我决定我的应用程序的每个“模块”都有自己的资源文件、样式文件和GSS文件。另外,例如按钮的样式将在一个不同的全局GSS文件中,因为它更像是一种应用程序样式,通过应用程序使用。

这不是问题,但当我想做这样的事情时:

代码语言:javascript
复制
.buttonGroup>.button.active{ background-color: red}

在其中一个模块中,它与任何内容都不匹配。

由于按钮样式(buttonGroup、按钮、活动)和行为(在单击中添加"active“类)是在不同的(全局) GSS文件中指定的,所以我无法更改"active”类的样式。

下面是一个简化的示例:

代码语言:javascript
复制
public interface AppResources extends ClientBundle {

    public static AppResources INSTANCE = GWT.create(AppResources.class);

    @Source({"style.gss"})
    AppStyle appStyle();
}

样式文件:

代码语言:javascript
复制
public interface AppStyle extends CssResource {

    String buttonGroup();
    String button();
    String active();
}

模块:

代码语言:javascript
复制
public interface ModuleResources extends AppResources{

    public static ModuleResources INSTANCE = GWT.create(ModuleResources.class);

    @Source({"style.gss","module.gss"})
    ModuleStyle moduleStyle();
}

样式文件:

代码语言:javascript
复制
public interface ModuleStyle extends AppStyle {
}

在GSS文件中,我尝试使用@provide和@require (如果没有它,它就不会编译,因为它缺少标识符或类)。

然后,它编译得很好,但是buttonGroup、按钮甚至是active类都被视为属于AppStyle的类,因此使用了style.gss样式和规则:

代码语言:javascript
复制
.buttonGroup>.button.active{ background-color: red}

.hash-ModuleStyle-buttonGroup.hash-ModuleStyle-button中,任何东西都不匹配,因为它可能在寻找.hash-AppStyle-buttonGroup.hash-ModuleStyle-active类,而按钮上的实际样式是.hash-AppStyle-buttonGroup等。

EN

回答 2

Stack Overflow用户

发布于 2017-11-14 09:58:53

最后,我在我想要在不同GSS样式表中使用的类上使用@external来解决这个问题。

通过使用@external,小部件中的所有类(它们都有自己的样式表)使它们的类名保持不混淆,以便它们可以在任何模块样式表中被覆盖。

我以前不想这么做,但这是我唯一能想到的解决办法。

票数 0
EN

Stack Overflow用户

发布于 2017-11-14 19:40:12

这正是@Import所要解决的问题!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46182425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档