Виджеты Dojo GFX отображают плавающее поведение вместо правильного позиционирования

Я использую Dojo GFX для простого рисования, но у меня проблема с IE 7/8 (переключение браузера невозможно).

Если я создам div, настрою поверхность и нарисую несколько прямоугольников, они правильно отрисуются относительно div, пока все хорошо.

Однако то, что я хочу сделать, это создать виджет, что-то со встроенной «поверхностью», которая рисует на основе некоторых данных, специфичных для виджета. Таким образом, у меня есть виджет, содержащий div, и я рисую в этом div. Когда я это делаю, прямоугольники, которые я создаю, ведут себя так, как будто они реагируют на float:right, появляются в порядке их создания и игнорируют параметр «x».

Я предполагаю, что это поведение как-то связано с CSS, но я еще не дошел до сути. Любые идеи или решения с благодарностью!


Обновления:

  • Я отключил все таблицы стилей и не использую атрибуты стиля. Никакой разницы в поведении.
  • Я проверил разметку, созданную с помощью инструментов разработчика IE8. Помимо другого местоположения содержащего div, единственная разница, которую я вижу, заключается в том, что элементы v: roundrect не имеют дочерних элементов при создании против div виджета, но у них есть пустые элементы, такие как штрих, при создании против div, на который ссылается идентификатор .
  • Просматривая документы, я вижу разницу, которая может быть ответственной, заключается в том, что метод postCreate, в котором я делаю свой рисунок, манипулирует div, который еще не был добавлен в dom, тогда как рисование на жестко закодированном div выполняется, когда он существует. Может быть, разница в рендеринге как-то связана с этим? Существует ли определенная функция жизненного цикла, которую можно использовать для виджетов?

person brabster    schedule 13.07.2012    source источник


Ответы (1)


Кажется, что если вы собираетесь использовать Dojo GFX и рисовать на элементах DOM, созданных как часть виджета в IE7/8, вы должны на самом деле делать рисование в переопределении метода startup().

Рисование в методе postCreate() вызывает неверный рендеринг, напоминающий float: left.

person brabster    schedule 13.07.2012