从GWT修改样式

时间:2010-06-21 07:05:31

标签: gwt

我执行但是只有FF和chrome从顶部移动textarea 0px而从左移动0px但在IE中 textarea处于默认位置。

这是我的代码:

public class MyGWT implements EntryPoint {

   TextArea ta= TextArea.wrap(DOM.getElementById("t"));

   public void onModuleLoad() {

     ta.getElement().setAttribute("style", "position:absolute;top:0px;left:0px;");
   }

}

是否有任何错误或如何以编程方式从GWT改变样式属性?

2 个答案:

答案 0 :(得分:29)

请勿通过style设置setAttribute。在JavaScript中,style属性实际上是一个数组。因此,根据浏览器的智能程度并了解您想要设置样式属性,它可以通过设置style或不起作用来实现。

您应该通过getElement().getStyle().setProperty()单独设置样式属性。或者使用特定方法,例如:ta.getElement().getStyle().setPosition(Position.ABSOLUTE)或通过setProperty方法:ta.getElement().getStyle().setProperty("position", "absolute")。对于其他2个属性也一样。有关支持的具体方法,请参阅Style类。

答案 1 :(得分:3)

使用样式类怎么样?我的意思是,你可以写一个这样的样式类:

.someClass {
    position:absolute;
    top:0px;
    left:0px;
}

然后将样式类添加到TextArea

ta.addStyleName("someClass");

它将帮助您编写更简洁的代码,而不需要难以维护的内联样式。