使用GWT和CssResource和@if的移动设备的不同字体大小

使用GWT和CssResource和@if的移动设备的不同字体大小,css,gwt,Css,Gwt,在使用CssResource和ClientBundle的GWT中,可以使用以下条件语句: @if <deferred-binding-property> <space-separated list of values> { ... css rules ... } 不幸的是,这对我不起作用。它始终使用@if语句中定义的字体大小,而不管依赖于所用设备的gwt属性的formfactor是什么。 是否有人可以解释这一点,或者提出更好的方法来实现我的目标?您是否尝试过将def

在使用CssResource和ClientBundle的GWT中,可以使用以下条件语句:

@if <deferred-binding-property> <space-separated list of values> {
  ... css rules ...
}
不幸的是,这对我不起作用。它始终使用@if语句中定义的字体大小,而不管依赖于所用设备的gwt属性的formfactor是什么。
是否有人可以解释这一点,或者提出更好的方法来实现我的目标?

您是否尝试过将def设置为if/else

@if formfactor mobile {
  @def fontSize 2.375em;
} @else{
  @def fontSize 1.1875em;
}

.my_font{
    font-family: Arial;
    font-weight: normal;
    font-size: fontSize;
    cursor: default;
}
我相信这是在GWT中。在CSS中替换变量时,似乎没有应用任何条件处理。但是,如果要将fontSize函数添加到CssResource扩展接口,则会应用条件处理,即对于“移动”formFactor置换,函数的结果将为2.375,即使CSS中将替换为“1.1875em”

一种解决方法是定义一个“mobile”formFactor特定变量,并使用条件处理覆盖使用fontSize变量的CSS属性:

@def fontSizeMobile 2.375em;
@if formfactor mobile {
    @def fontSize fontSizeMobile;
} @else {
    @def fontSize 1.1875em;
}
.my_font{
    font-family: Arial;
    font-weight: normal;
    font-size: fontSize;
    cursor: default;
}
@if formfactor mobile {
    .my_font{
        font-size: fontSizeMobile;
    }
}
@def fontSizeMobile 2.375em;
@if formfactor mobile {
    @def fontSize fontSizeMobile;
} @else {
    @def fontSize 1.1875em;
}
.my_font{
    font-family: Arial;
    font-weight: normal;
    font-size: fontSize;
    cursor: default;
}
@if formfactor mobile {
    .my_font{
        font-size: fontSizeMobile;
    }
}