2010-06-21 29 views
15

Tôi đã thực hiện nhưng chỉ FF và chrome di chuyển văn bản 0px từ trên xuống và 0px từ bên trái nhưng trong văn bản IE ở vị trí mặc định.Sửa đổi kiểu từ GWT

Đây là mã của tôi:

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;"); 
    } 

} 

có bất kỳ lỗi hoặc làm thế nào tôi có thể thay đổi thuộc tính phong cách lập trình từ GWT ??

Trả lời

28

Không được đặt style qua setAttribute. Trong JavaScript, thuộc tính style thực sự là một mảng. Do đó, tùy thuộc vào trình duyệt thông minh và hiểu bạn muốn đặt thuộc tính kiểu như thế nào, nó sẽ hoạt động bằng cách đặt style hoặc không hoạt động.

Bạn nên đặt các thuộc tính kiểu riêng lẻ thông qua getElement().getStyle().setProperty(). Hoặc sử dụng các phương pháp cụ thể, như: ta.getElement().getStyle().setPosition(Position.ABSOLUTE) hoặc thông qua phương thức setProperty: ta.getElement().getStyle().setProperty("position", "absolute"). Và tương tự cho 2 thuộc tính khác. Xem các lớp học Style cho những phương pháp cụ thể được hỗ trợ.

+1

+1 Có câu trả lời tại chỗ này bằng cách yêu cầu Google: 'thuộc tính kiểu gwt không được đặt trong nghĩa là' :) – jensgram

2

Điều gì về việc sử dụng các lớp kiểu? Ý tôi là, bạn có thể viết một lớp kiểu như thế này:

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

Và sau đó thêm các lớp phong cách cho TextArea

ta.addStyleName("someClass"); 

Nó sẽ giúp bạn viết một mã ngắn gọn hơn, mà không cần kiểu nội tuyến mà có thể khó duy trì.

+0

Điều này có nhiều chi tiết hơn, ít chi tiết hơn và có thể mở rộng. Chắc chắn cách để đi – slonik

+0

Ghép nối phương pháp này với CSSResource. Gọn gàng và sạch sẽ. Sau đó, bạn có thể sử dụng ta.addStyleName (CssResource.INSTANCE.someClass()); – StackOverflow

Các vấn đề liên quan