0

我声明了一个 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);
}

谢谢

4

3 回答 3

0

不,你不能。

Style 类构造函数在 GWT 中是不可见的。所以你不能创建一个对象。

但是您可以在 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");
于 2013-03-21T04:53:00.657 回答
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,并且更像是隐藏元素、非驼峰化属性等的解决方法。

于 2013-03-20T22:29:40.450 回答
0

我最近不得不这样做,它在 GWT 中简单地解决了;

fontSize = ComputedStyle .getStyleProperty(this.getElement(), "fontSize");

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

于 2013-11-22T23:24:39.620 回答