当您制作没有宽度/高度的图表(或 dojox.gfx 画布)时,它会尽力从您放入的容器中确定其尺寸。但它可能会感到困惑!
在你的小提琴的情况下,#chart 有一个已知的宽度,因为它是一个块元素,并且从 panelBG 继承了它的宽度,它是 panelContainer 宽度的 100%。
#chart div 并没有真正的高度,因为块元素是 0px 高,直到你把东西放进去(或者给它添加一些样式)。因此,(我认为)图表只是假设高度与宽度成比例。
在您的 CSS 中,我看到您有一个宽度和高度为 90% 的 #chartDiv 规则。我猜您打算将其用作#chart。但这实际上并不能完全解决问题!
假设您更改了它,图表现在将使用 90%x90% 作为宽度/高度,但如果您尝试一下,您会发现标签/轴的位置仍然不正确。
因为您已将标题容器浮动到左侧,所以图表容器从同一“行”开始并尝试使其内容“浮动”在标题容器周围。这会使轴标签错位(绿色),而实际图表(svg/canvas,粉红色)下降到标题容器下方。
要解决此问题,请告诉图表容器不要在两侧浮动:
#chart {
width: 90%;
height: 90%;
clear: both;
}
不过,浮动任何东西并不是真正必要的,将高度设置为 90% 并不总是理想的。我在更新的小提琴中提出了一个建议:http: //fiddle.jshell.net/froden/WsrHs/4/。
不同之处在于标题容器是一个跨越顶部的 div,而图表容器是绝对定位的,因此它可以填充下面留下的任何空间。然后,您可以在 panelContainer 上设置宽度/高度。