css - GWT - CSS 中常量的问题

标签 css gwt constants

我是 GWT 的新手;我正在构建一个小型示例应用程序。我有几个 CSS 文件。我能够成功地使用 ClientBundle 和 CssResource 为我的 UiBinder 脚本中定义的元素分配样式。

现在我想更进一步,使用@def css-rule 引入CSS 常量。当我定义常量并在同一个 CSS 文件中使用它时,@def 非常有用。但是我不能在另一个 CSS 文件中使用它。当我尝试使用 @eval 规则来评估现有常量时,编译器会抛出一个 execption:“无法对非静态方法进行静态引用”。

这是我正在尝试做的一个例子:

ConstantStyle.css

@def BACKGROUND red;

ConstantStyle.java

package abc;
import ...;
interface ConstantStyle extends cssResource {
         String BACKGROUND();
}

MyStyle.css

@eval BACKGROUND abc.ConstantStyle.BACKGROUND();
.myClass {background-color: BACKGROUND;}

MyStyle.java

package abc;
import ...;
interface ConstantStyle extends cssResource {
         String myClass;
}

我的资源.java

package abc;
import ...;
interface MyResources extends ClientBundle {
    @Source("ConstantStyle.css")
     ConstantStyle constantStyle();

    @Source("MyStyle.css")
    MyStyle myStyle();
}

提前致谢!

最佳答案

"ConstantStyle.css" 添加到ClientBundle 中的@Source 注释中,如下所示:

package abc;
import ...;
interface MyResources extends ClientBundle {
    @Source("ConstantStyle.css")
     ConstantStyle constantStyle();

    @Source({"ConstantStyle.css", "MyStyle.css"})
    MyStyle myStyle();
}

它的作用与 MyStyle.css 中的 @import "ConstantStyle.css" 相同(我相信 GWT 忽略了 @import 除外)。

你不需要@eval。

关于css - GWT - CSS 中常量的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2641747/

相关文章:

c# - asp.net 下拉列表选项中的内容被剪切/重叠

gwt - 有没有人在 Heroku 上成功部署过 GWT 应用程序?

c++ - 如何将 const char* 转换为字符串,然后再转换回 char*?

html - 更改 Bootstrap 轮播的高度 - 保持响应

css - html5 样式在 IE8 中不起作用

gwt - 使用异步调用测试 GWTP Presenter

c++ - 为什么 "const int"到 "int"的转换有效,但 "const char[]"到 "char *"的转换无效

函数声明中参数的 Const 限定

html - 为什么框中有未知的边距/填充?

gwt - 如何计算gwt中加载模块所需的时间?