Изменить стиль из 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??

Ответы

Ответ 1

Не устанавливайте style через setAttribute. В JavaScript атрибут стиля фактически является массивом. Таким образом, в зависимости от того, насколько интеллектуальным является браузер и понимает, что вы хотите установить атрибуты стиля, он будет работать, установив style или не будет работать.

Вы должны установить индивидуальные атрибуты стиля через getElement().getStyle().setProperty(). Или используйте специальные методы, например: ta.getElement().getStyle().setPosition(Position.ABSOLUTE) или с помощью метода setProperty: ta.getElement().getStyle().setProperty("position", "absolute"). И то же самое для 2 других свойств. См. Класс style для поддержки определенных методов.

Ответ 2

Как насчет использования классов стилей? Я имею в виду, вы можете написать класс стиля следующим образом:

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

Затем добавьте класс стиля в TextArea

ta.addStyleName("someClass");

Это поможет вам написать более сжатый код без встроенного стиля, который может быть сложно поддерживать.