2009-11-23 3 views
1

Я создаю компонент слайдера в GWT.Как преобразовать 100% в px в HTML

Parent : width = 100% 
.-------------------------------------------------. 
| .---------------------------------------------. | 
| |  Child : width = X      | | 
| '---------------------------------------------' | 
'-------------------------------------------------' 

где X = (ширина родителя в px) - (некоторые расчеты основаны на времени выполнения);

Мой код говорит:

int providedWidth = parentContainer.getOffsetWidth(); 

В Firefox, я получаю ширину правильно, как (скажем) 345px Но в IE6, она постоянно возвращает ширину, как 0, независимо от того, какого размера она есть.

С точки зрения GWT, Родитель является AbsolutePanel, размещенным в DockPanel (суперпользователь), Ребенок является горизонтальной панелью.

Я не размещал здесь код для краткости, есть ли другой способ получить ширину или нет Я что-то не так?

ответ

3

Просто дикая догадка, но, возможно, элементу нужен «макет» в IE6? Можете вы дать style='zoom:1'?

+0

Я собирался это предложить. +1 –

+0

Не работает, Но его отличное предложение из коробки: вызывать метод hasLayout(). Человек, который хотел бы, чтобы это сработало, Но IE все еще сообщает об этом как 0. –

+0

на аналогичных строках, я предоставил ему границу, используя инструменты разработчика, и он внезапно выскочил! Возможно, hasLayout не был запущен до тех пор ... –

2

В IE вам иногда приходится получать информацию о размере в DeferredCommand, потому что IE выполняет только макет после того, как поток событий завершен.

+0

Не работает, но спасибо за предложение. –

+0

Каков тип родительского контейнера? Это действительно 100% окна браузера? –