我有一个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);
}
谢啦
不,你不能。
样式类构造函数是不可见的GWT.So你不能创建一个对象。
但是您可以在元素上获取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");
您需要一段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,并为隐藏元素、非骆驼化属性等做更多的变通方法。
我最近不得不这样做,它在GWT中简单地解决了;
fontSize=ComputedStyle. getStyleProperty(this.getElement(),"fontSize");
这将获取您的类先前提供给它的计算值。