2010-06-21 6 views
15

에서 수정했습니다. FF와 크롬 만 텍스트 공간을 위쪽에서 0px, 왼쪽에서 0px로 이동하지만 IE에서는 텍스트 영역이 기본 위치에 있습니다. 여기 스타일을 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

stylesetAttribute으로 설정하지 마십시오. 자바 스크립트에서 스타일 속성은 실제로 배열입니다. 따라서 브라우저가 얼마나 똑똑한 지에 따라 스타일 속성을 설정하려면 style으로 설정하거나 작동하지 않을 수도 있습니다.

getElement().getStyle().setProperty()을 통해 스타일 속성을 개별적으로 설정해야합니다. 또는 ta.getElement().getStyle().setPosition(Position.ABSOLUTE)과 같은 특정 메소드를 사용하거나 setProperty 메소드 ta.getElement().getStyle().setProperty("position", "absolute")을 사용하십시오. 그리고 다른 2 개의 속성에 대해서도 마찬가지입니다. 지원되는 특정 메소드에 대해서는 Style 클래스를 참조하십시오.

+1

+1 Google에 묻는이 spot-on 대답을 얻었습니다 :'gwt 스타일 속성이 설정되지 않았습니다 '. :) – jensgram

2

스타일 클래스 사용은 어떻게됩니까? 내 말은,이 같은 스타일 클래스 작성할 수 있습니다

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

을 그리고 인라인 스타일링없이, 그것은 당신이 더 간결한 코드를 작성하는 데 도움이 될 것입니다

ta.addStyleName("someClass"); 

텍스트 영역에 스타일 클래스를 추가하는 유지 관리가 어려울 수 있습니다.

+0

이것은 훨씬 깔끔하고 덜 길고 확장 가능합니다. 확실히가는 길 – slonik

+0

CSSResource와이 접근 방식을 쌍으로 연결하십시오. 청초한. 그런 다음 ta.addStyleName (CssResource.INSTANCE.someClass());을 사용할 수 있습니다. – StackOverflow