0

我正在使用 Dojo GFX 进行一些简单的绘图,但是 IE 7/8 出现问题(不能切换浏览器)。

如果我创建一个 div,设置一个表面并绘制一些矩形,它们相对于 div 正确绘制,到目前为止一切都很好。

但是,我想做的是创建一个小部件,它具有基于某些小部件特定数据绘制的嵌入式“表面”。因此,我有一个包含 div 的小部件,并且我绘制到这个 div 中。当我这样做时,我创建的矩形表现得好像它们在响应 float:right,按照它们的创建顺序出现并忽略“x”参数。

我认为这种行为与 CSS 有关,但我还没有深入了解它。任何想法或解决方案将不胜感激!


更新:

  • 我已经禁用了所有样式表并且我没有使用样式属性。行为没有区别。
  • 我检查了使用 IE8 开发工具生成的标记。除了包含 div 的不同位置之外,我能看到的唯一区别是 v:roundrect 元素在针对小部件 div 创建时没有子元素,但在针对 ID 引用的 div 创建时它们确实有空元素,如中风.
  • 回顾文档,我可以看到一个可能是负责任的区别是我正在绘制的 postCreate 方法正在操作一个尚未添加到 dom 的 div,而在硬编码的 div 上绘制是在它完成时确实存在。也许渲染的差异与此有关?是否有适合绘制小部件的特定生命周期函数?
4

1 回答 1

0

看来,如果您打算使用 Dojo GFX 并在 IE7/8 中作为小部件的一部分创建的 DOM 元素上绘图,您实际上必须在startup()方法的覆盖中进行绘图。

在该方法中绘图postCreate()会导致不正确的渲染,类似于float: left.

于 2012-07-13T10:16:20.720 回答