2010-06-21 54 views
15

我執行,但只有FF和鉻從左上角和0px的textarea 0px移動,但在IE textarea處於默認位置。從GWT修改樣式

這裏是我的代碼:

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更改樣式屬性?

回答

28

請勿通過setAttribute設置style。在JavaScript中,style屬性實際上是一個數組。因此,取決於瀏覽器的智能程度,並且理解你想要設置樣式屬性,它將通過設置style或不起作用。

您應該通過getElement().getStyle().setProperty()單獨設置樣式屬性。或者使用特定方法,如:ta.getElement().getStyle().setPosition(Position.ABSOLUTE)或通過setProperty方法:ta.getElement().getStyle().setProperty("position", "absolute")。對於其他兩個屬性也是如此。請參閱Style類以瞭解支持哪些特定方法。

+1

+1通過詢問Google獲得此點的答案:'gwt樣式屬性未設置爲ie' :) – jensgram 2011-09-16 09:05:09

2

如何使用樣式類?我的意思是,你可以寫一個樣式類是這樣的:

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

然後是風格類添加到文本區

ta.addStyleName("someClass"); 

它會幫助你寫出更簡潔的代碼,而無需內嵌樣式是可能難以維持。

+0

這是更加整潔,不太冗長和可擴展的。絕對要走的路 – slonik 2014-05-12 12:38:03

+0

將此方法與CSSResource配對。乾淨整潔。 然後,您可以使用ta.addStyleName(CssResource.INSTANCE.someClass()); – StackOverflow 2014-05-21 13:16:27