IE 6中Ext.Panel栏的宽度问题

时间:2008-09-18 05:06:53

标签: javascript internet-explorer extjs

我刚刚在IE6中遇到ExtJS框架的显示故障。 - 希望有人能指出我正确的方向。

在下面的示例中,面板的bbar在IE6中显示比它所连接的面板(它左对齐)窄2em,在Firefox中,它显示为与面板相同的宽度。

有人可以建议如何解决这个问题吗?

我似乎能够通过在ems中指定面板的宽度或以像素为单位填充来解决这个问题,但我认为它可以像我在下面那样工作。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css"/>
    <script type="text/javascript" src="ext/ext-base.js"></script>
    <script type="text/javascript" src="ext/ext-all-debug.js"></script>
    <script type="text/javascript">

    Ext.onReady(function(){        
        var main = new Ext.Panel({
            renderTo: 'content',
            bodyStyle: 'padding: 1em;',
            width: 500,
            html: "Alignment issue in IE - The bbar's width is 2ems less than the main panel in IE6.",
            bbar: [
                    "->",
                {id: "continue", text: 'Continue'}
            ]
        });
    });

    </script>
</head>
<body>
    <div id="content"></div>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

也许您应该尝试强制使用bbar的宽度:

main.getBottomToolbar().setWidth(500)
创建面板后

但我认为问题是bbar被渲染到面板的内部div,因此不同的浏览器会以不同的方式解释外部填充。

您也可以尝试将bbar的padding设置为-1em

答案 1 :(得分:1)

问题来自自定义bodyStyle填充。它使面板内容更大,但不是工具栏。

一种可能的解决方案是进一步嵌套Ext面板,例如:

    var main = new Ext.Panel({
        renderTo: 'content',
        width: 500,
        items: {
            bodyStyle: 'padding: 1em;',
            border: false,
            html: "Now alignment is fine."
        },
        bbar: [
                "->",
            {id: "continue", text: 'Continue'}
        ]
    });

边界:需要假以避免双重边界。