GWT-css中的常量问题
我是GWT的新手;我正在构建一个小样本应用程序。我有几个CSS文件。我能够成功地使用ClientBundle和CssResource为UiBinder脚本中定义的元素分配样式 现在我想更进一步,使用@defcss规则引入CSS常量。当我定义一个常量并在同一个CSS文件中使用它时,@def非常有效。但是,我不能在另一个CSS文件中使用它。当我尝试使用@eval规则来计算现有常量时,编译器抛出一个执行选项:“不能对非静态方法进行静态引用” 下面是我尝试做的一个例子: ConstantStyle.css ConstantStyle.java MyStyle.css MyStyle.java MyResources.javaGWT-css中的常量问题,css,gwt,constants,Css,Gwt,Constants,我是GWT的新手;我正在构建一个小样本应用程序。我有几个CSS文件。我能够成功地使用ClientBundle和CssResource为UiBinder脚本中定义的元素分配样式 现在我想更进一步,使用@defcss规则引入CSS常量。当我定义一个常量并在同一个CSS文件中使用它时,@def非常有效。但是,我不能在另一个CSS文件中使用它。当我尝试使用@eval规则来计算现有常量时,编译器抛出一个执行选项:“不能对非静态方法进行静态引用” 下面是我尝试做的一个例子: ConstantStyle.cs
提前谢谢 我在代码中这样做的方式是简单地引用
MyStyle.css
中的常量,即:
.myClass {background-color: BACKGROUND;}
我不完全清楚为什么会这样,可能是因为两个CSS文件都是按正确的顺序注入的。否则,我尝试在MyStyle.css
的顶部添加以下内容,它也可以工作:
@import url("ConstantStyle.css");
在ClientBundle
中的@Source
注释中添加“ConstantStyle.css”
,如下所示:
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.小语法错误-需要在@Source指令中使用“{”和“}”来定义两个css文件…例如:@Source({“path/to/definitions.css”,“foo.css”}),如中所述(我已发送了一个编辑请求以应用前面评论中建议的更改)
package abc;
import ...;
interface ConstantStyle extends cssResource {
String myClass;
}
package abc;
import ...;
interface MyResources extends ClientBundle {
@Source("ConstantStyle.css")
ConstantStyle constantStyle();
@Source("MyStyle.css")
MyStyle myStyle();
}
.myClass {background-color: BACKGROUND;}
@import url("ConstantStyle.css");
package abc;
import ...;
interface MyResources extends ClientBundle {
@Source("ConstantStyle.css")
ConstantStyle constantStyle();
@Source({"ConstantStyle.css", "MyStyle.css"})
MyStyle myStyle();
}