如何在多个CssResource css文件中使用相同的@def?

时间:2012-02-14 21:05:54

标签: gwt cssresource clientbundle

我想说,在一个集中的位置,

@def mainColor = #f00;

然后,在我的所有其他css文件中,请参阅mainColor,而无需重新定义它。然后,当我在一次更改mainColor时,我的整个应用程序会改变颜色。

到目前为止,我能想到的最好的方法是为每个CssResource声明包含两个@Source文件,并始终包含全局def文件。还有其他方法吗?

1 个答案:

答案 0 :(得分:5)

据我所知,这是你唯一的选择:

<强>的style.css

@def mainColor #f00;

<强> *。ui.xml

<ui:style src="../../../styles/style.css">
    .widget{ color: mainColor; }
</ui:style>

这方面的缺点是相对路径。每个ui.xml都需要不同的src路径。

或者,如果您不介意使用Constants.java文件(而不是css), 你可以使用@eval

<ui:style>
  @eval mainColor com.myproject.client.Styles.INSTANCE.mainColor(); 
  .widget{ color: mainColor; }
</ui:style>