GWT CSSResource@if语句中使用了哪些延迟绑定属性?

GWT CSSResource@if语句中使用了哪些延迟绑定属性?,gwt,cssresource,Gwt,Cssresource,我目前正试图在CssResource文件中使用条件CSS,如前所述,但我对“”部分有点不清楚 这些属性必须在哪里定义?我认为当前正在编译的模块继承树中的任何标记都是可用的,但这似乎不是真的。我真的在网上找不到这方面的任何文件 在我的例子中,我正在处理的项目由两个应用程序组成,每个应用程序都有自己的GWT模块,但它们都继承了一个包含共享代码的“核心”模块,包括带有@if语句的ClientBundle/CssResource。我希望对其求值的延迟绑定属性在另一个gwt模块文件中定义 我正在尝试使用以

我目前正试图在CssResource文件中使用条件CSS,如前所述,但我对“
”部分有点不清楚

这些属性必须在哪里定义?我认为当前正在编译的模块继承树中的任何
标记都是可用的,但这似乎不是真的。我真的在网上找不到这方面的任何文件

在我的例子中,我正在处理的项目由两个应用程序组成,每个应用程序都有自己的GWT模块,但它们都继承了一个包含共享代码的“核心”模块,包括带有
@if
语句的ClientBundle/CssResource。我希望对其求值的延迟绑定属性在另一个gwt模块文件中定义

我正在尝试使用以下内容:

@if formfactor mobile{
  .wrapper{
     top:50px;
  } 
}
gwt编译的所有内容都没有任何错误。模块文件本身中基于“formfactor”属性的任何延迟绑定都得到了正确的评估(即,我得到了预期的“移动”特定视图)。正在注入
@if
块中的css规则

我已经尝试在核心gwt.xml文件和应用程序gwt.xml文件中继承formfactor.gwt.xml,这两个文件都按照上一段所述工作

如果我在CssResource文件中包含
@else
语句,则会插入
@else
块中的代码,但如果我包含
@elif formfactor desktop tablet
(仅为formfactor属性定义的其他两个值),然后既不注入
@if
块,也不注入
@elif

更新 -虽然我仍然认为明确回答这个问题会很有用,但我的CssResource文件似乎在作用域中有formfactor属性。这个问题似乎与GWT问题4697(
code.google.com/p/google web toolkit/issues/detail?id=4697
)有关,在这个问题上,@if/@elif/@else语句的最后一个子句总是被注入,而不管所计算的deferred绑定属性的值是多少

在我的情况下,一个解决方法是简单地在普通css中设置“标准”值,然后手动更改@if块中的值,例如:

.wrapper{ 
  top:66px; 
  ... 
}
@if formfactor mobile {
  .wrapper{
    top:50px;
  }
}
只要您没有在条件中使用@def语句,第二条规则只有在条件的计算结果为true时才会被注入


我意识到这可能不适用于所有css规则,因为它本质上为规则定义了第二个值,而没有删除第一个值,但这只是一种变通方法

我认为在值后面需要一个空格,但不确定这是否足够。是的,似乎已经足够了。我一定没有在@if表达式中的值后面加空格。那是我错过的地方吗?那就别管我的工作了。。。谢谢