ExtJS 4中心文本在'box'元素中

时间:2013-11-05 12:39:50

标签: extjs extjs4

在我的界面中,我使用以下结构:

xtype: 'container',
layout: {
    type: 'hbox',
    align: 'stretch'
},
items: [
{
    xtype: 'fieldset',
    flex: 2,
    layout: {
        type: 'vbox',
        align: 'stretch'
    },
    margin: '0 5 0 0',
    padding: '10',
    items: [
        {
            xtype: 'container',
            flex: 1,
            layout: 'hbox',
            items: [
                {
                    xtype: 'combo',
                    flex: 1,
                    margin: '0 5 0 0',
                    name: 'deviceSelect',
                    ...
                },
                {
                    xtype: 'button',
                    ...
                },
                {
                    xtype: 'button',
                    ...
                }
            ]
        },
        {
            xtype: 'box',
            flex: 1,
            name: 'deviceMessage'
            ...
        }
    ]
},
{
    ...
},
{
    ...
}

组合'deviceSelect'应该取容器的整个宽度,除了两个按钮的大小,在它下面应该是文本。目前一切正常,但有一个例外 - 文本“固定”在“deviceMessage”容器的顶部。如何将它放在容器的中间(垂直)?我尝试了样式:'vertical-align:middle;',但它不起作用(可能是因为ext加上顶部:24px)。

我认为代码不是最优的。欢迎提出任何意见。

1 个答案:

答案 0 :(得分:3)

像这样:http://jsfiddle.net/laurenzonneveld/YLrzC/

您需要的部分是layout部分:

xtype: 'container',
name: 'deviceMessage',
layout: {
    // Centers your inner panel with the HTML
    type: 'vbox',
    align: 'center',
    pack: 'center'
},
//...
items: {
    xtype: 'container',
    html: 'sadfasdf<br>safasdfasf'
}