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

时间:2013-08-13 21:00:47

标签: gwt cssresource

我目前正在尝试在here描述的CssResource文件中使用条件CSS,但我对“<deferred-binding-property>”部分有点不清楚。

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

就我而言,我正在处理的项目包含两个应用程序,每个应用程序都有自己的GWT模块,但它们都继承了一个包含共享代码的“核心”模块,包括带有{{1}的ClientBundle / CssResource }语句。我想要评估的延迟绑定属性是在另一个gwt模块文件formfactor.gwt.xml中定义的。

我试图使用以下内容:

@if

所有gwt编译没有任何错误。正在正确评估模块文件本身中基于“formfactor”属性的任何延迟绑定(即,我按预期获得“移动”特定视图)。 <{1}}块中没有任何css规则被注入。

我尝试在核心gwt.xml文件和应用程序gwt.xml文件中继承formfactor.gwt.xml,并且都按照上一段中的描述进行操作。

如果我在CssResource文件中包含@if formfactor mobile{ .wrapper{ top:50px; } } 语句,@if块中的代码会被注入,但如果我包含@else(为此定义的唯一其他两个值) formfactor property),然后注入@else块和@elif formfactor desktop tablet块。

更新 - 虽然我仍然认为最终回答问题会很有用,但似乎我的CssResource文件在范围内确实具有formfactor属性。该问题似乎与GWT问题4697(@if)有关,其中@ if / @ elif / @ else语句的最后一个句子总是被注入,而不管被评估的defferred-binding-property的值如何。

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

@elif

只要您不在条件内使用@def语句,只有在条件求值为true时才会注入第二条规则。

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

0 个答案:

没有答案