2012-05-13 4 views
0

Мой CSS-файл ниже устанавливает ширину «50 пикселей» для стиля «myButton», и, соответственно, элемент правильно создан с шириной 50 пикселей.Element.getStyle() не возвращает никакого значения в GWT

Проблема заключается в управлении элементом из Java (GWT). Следующие строки:

MyFile.java

final Element box1 = DOM.getElementById("myButton"); 
String test=box1.getStyle().getWidth(); 
box1.getStyle().setWidth(100, Unit.PX); 
String test2=box1.getStyle().getWidth(); 

иметь в качестве результата теста = "" и test2 = "100px", а элемент правильно изменен до 100 пикселей. Почему тест не имеет значения?

Спасибо,

myfile.html

<div style="width: 100%"> 
    <a id ="myButton" href="#" class="myButton" style="text-decoration: none">Hey</a>  
</div> 

MyFile.css

.myButton { 
    display:block; 
    padding: 10px; 
    font-family:"Garamond 3 W01","Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif;/*"Lucida Sans", "Lucida Sans Regular", "Lucida Grande", "Lucida Sans Unicode", Geneva, Verdana, sans-serif;*/ 
    font-size: medium; 
    color: #000000; 
    text-align: center; 
    border-radius: 8px; 
    background-color: #E7E7E7; 
    background-image: url('bar1.png'); 
    border-bottom: 1px solid #BBB; 
    border-top: 1px solid #BBB; 
    box-shadow: 0 0 6px 0 #B3B2B7; 
    text-shadow: 0 1px 0 white; 
    width: 50px; 
    height: 30px; 
    margin: 10px 10px 10px 10px; 
} 

ответ

2

Element#getStyle() возвращает то же самое, как в JavaScript element.style, то есть стиль применяется инлайн к элементу (через его атрибут style="").

GWT не эмулирует getComputedStyle или аналогичный; если вы действительно нуждаетесь в них (что маловероятно: вместо этого вы должны, скорее всего, реорганизовать свой код), тогда вам придется использовать JSNI.

См. https://developer.mozilla.org/en/DOM/element.style

Смежные вопросы