0

我对 IE 7/8/9 有这个可怕的问题。

Dojo toolkit 1.8.0我使用and编写了一个应用程序Play! framework。它在除 IE 之外的所有浏览器中都能正常工作。它的“开发人员工具”没有错误,firebug 也是如此。有问题的代码部分在这里:

<div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="design: 'headline'">
    <div data-dojo-type="dijit.layout.ContentPane" id="head" region="top">
    </div>
    <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="region: 'center'">
        <div data-dojo-type="dijit.layout.ContentPane" id="menu" region="left">
        </div>
        <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="region: 'center'">
            <div data-dojo-type="dijit.layout.ContentPane" id="content_1" region="top">
            </div>
            <div data-dojo-type="dijit.layout.ContentPane" id="content_2" region="bottom">
            </div>
        </div>
    </div>
    <div data-dojo-type="dijit.layout.ContentPane" id="foot" region="bottom">
    </div>
</div>

结果,在除 IE 之外的所有浏览器中都是这样的: 好办法

但在 IE 中显示如下: 不好的方式

谁能解释为什么会有这样的差异?一开始我以为在 IE 中内容是隐藏的,所以我设置了overflow: auto,但是页面加载后没有出现滚动条。

4

2 回答 2

0

想到两个可能的原因:

  1. 您没有内容容器的“中心”元素-afaik,dojo 规范需要一个带region="center"或不指定区域的 BorderContainerChild,默认为中心

  2. 您的标记中是否有任何非布局元素作为 BorderContainer 的直接子元素?在这种情况下,IE for once 是更标准的要求和不明确的标记

于 2012-10-10T14:03:45.367 回答
0

问题在于我的自定义类添加到.menu元素:

.menu {
    margin-right: auto;
    margin-left: auto;
}

这 2 种样式破坏了我的整个布局 -.- 当我删除它时,它开始正常显示。

于 2012-10-11T09:35:00.820 回答