获取gwt中的css类属性值?

时间:2013-03-20 20:01:58

标签: gwt

我声明了一个css类:

gwt-Label {
  font-size: 16px;
}

有没有办法可以在运行时查询font-size的值?类似的东西:

public void foo() {
    CssFoo css = new CssFoo("gwt-Label");
    float fontSize = css.getAttribute("font-size");
    println("Your font size is: " + fontSize);
}

由于

3 个答案:

答案 0 :(得分:0)

您需要一段JSNI代码来获取computedValue,或者更好的选择是使用gwtquery

 import static com.google.gwt.query.client.GQuery.*;
 ...

 // the second parameter set to true means: return the real computed value
 double size = $(my_widget).cur("font-size", true);

如果你有兴趣用js做这件事你可以做这样的事情(它应该适用于现代浏览器)

 private static final double getPropertyValue(Element elem, String prop) /*-{
   return $wnd.getComputedStyle(elem,null).getPropertyValue(prop);
 }-*/

但是我会选择适用于所有浏览器的gquery,并且更像是隐藏元素的解决方法,非隐藏属性等。

答案 1 :(得分:0)

不,你不能。

GWT中的Style class构造函数是不可见的。所以你不能创建一个Object of That。

但是你可以在Element上获得Style对象

例如:

 TextBox textbox= new TextBox();
 Style style = textbox.getElement().getStyle();
 String fontSize = style.getFontSize();

String attribute = textbox.getElement().getAttribute("fontSize");//camelcase

String styleAttribute = DOM.getStyleAttribute(textbox.getElement(), "fontSize");

答案 2 :(得分:0)

我最近必须这样做,只需用;

即可在GWT中解决

fontSize = ComputedStyle .getStyleProperty(this.getElement(),“fontSize”);

这将获得您的类先前提供给它的计算值。