2013-08-19 33 views
6

有什麼區別layout:'hbox'layout:'column'?它只是語法嗎?什麼是不同佈局:'hbox'和佈局:'列'

實施例 ' ':

layout:'column', 
items: [{ 
    title: 'Width = 25%', 
    columnWidth: .25, 
    html: 'Content' 
},{ 
    title: 'Width = 75%', 
    columnWidth: .75, 
    html: 'Content' 
},{ 
    title: 'Width = 250px', 
    width: 250, 
    html: 'Content' 
}] 

實施例' hbox中':

layout: { 
    type: 'hbox', 
    pack: 'start', 
    align: 'stretch' 
}, 
items: [ 
    {html:'panel 1', flex:1}, 
    {html:'panel 2', width:150}, 
    {html:'panel 3', flex:2} 
] 

回答

5

有幾個還沒有被覆蓋的column明顯的優勢。它比hbox輕得多。 Column只是讓瀏覽器使用浮動佈局其內容,而不是設置left它也比hbox少標記。它也可以在大多數情況下更好地處理溢出。

例如,在列布局VS一個橫向盒一個窗口

var win = Ext.create('Ext.Window', { 
    width: 700, 
    height: 400, 
    title: "Column", 
    defaults: { 
     height: 50, 
     width: 300 
    }, 
    layout: { 
     type: 'column' 
    }, 
    items: [{ 
     xtype: 'panel', 
     title: 'Inner Panel One' 
    },{ 
     xtype: 'panel', 
     title: 'Inner Panel Two' 
    },{ 
     xtype: 'panel', 
     title: 'Inner Panel Three' 
    }] 
}); 

win.show() 

var win2 = Ext.create('Ext.Window', { 
    width: 700, 
    height: 400, 
    title: "Hbox", 
    defaults: { 
     height: 50, 
     width: 300 
    }, 
    layout: { 
     type: 'hbox' 
    }, 
    items: [{ 
     xtype: 'panel', 
     title: 'Inner Panel One' 
    },{ 
     xtype: 'panel', 
     title: 'Inner Panel Two' 
    },{ 
     xtype: 'panel', 
     title: 'Inner Panel Three' 
    }] 
}); 

win2.show() 

600px resize

300px resize

概括起來的column覺得作爲一個auto佈局漂浮的東西向左和hbox作爲box佈局,其增加了諸如stretchpack之類的功能。他們都有他們的彎曲版本。

3
Column

在框架的早期版本中存在VBoxHBox之前。這主要是出於兼容性的原因。 HBox提供更多功能(packalign)等等。