我正在使用extjs并试图解决一个简单的问题: 我有一个固定宽度的表格。我想将此表单置于普通的Ext.Panel中。 我正在努力实现'css-way' - 将左右边距设置为'auto'。
但是这不起作用,似乎边缘被忽略了。
守则:
var curStateForm = new Ext.FormPanel({
title:'test',
width:300,
bodyStyle:'margin:5px auto 0 auto',
items: [edIst, edAdjust, edSumme]
});
var testPanel = new Ext.Panel({
width: '100%',
frame:true,
items: [curStateForm]
});
答案 0 :(得分:17)
这在Ext 4中非常适合我
在任何容器上使用
layout: {
type: 'vbox',
align: 'center',
pack: 'center'
},
items: [{
title: 'Centered Panel',
width: 200,
height: 200
}]
答案 1 :(得分:3)
style: {
marginLeft: 'auto',
marginRight: 'auto'
},
答案 2 :(得分:2)
我刚刚把它做到了一个小组
listeners: {
afterlayout : function(container, layout, eOpts) {
panel.center();
}
}
为我工作。
答案 3 :(得分:1)
你见过this sample吗?查看“自定义布局/中心”下的示例。
编辑:在Ext 3中,该样本是要走的路。现在在Ext 4中,最好在外部容器上使用vbox布局,中心对齐,如A1rPun's answer所示。
答案 4 :(得分:1)
在小组中:
bodyStyle: "padding: 15px;" // may also be only padding-left/right
答案 5 :(得分:1)
例如,我使用这种布局:
Ext.layout.AbsoluteCenterLayout = Ext.extend(Ext.layout.ContainerLayout, {
monitorResize:true,
onLayout : function(ct, target){
Ext.layout.AbsoluteCenterLayout.superclass.onLayout.call(this, ct, target);
if(!this.container.collapsed){
var sz = (Ext.isIE6 && Ext.isStrict && target.dom == document.body) ? target.getViewSize() : target.getStyleSize();
this.setItemSize(this.activeItem || ct.items.itemAt(0), sz);
}
},
setItemSize : function(item, size){
if(item && size.height > 0){ // display none?
formEl = item.getEl();
var widthCenter = (size.width/2)-(formEl.getWidth()/2);
var heightCenter = (size.height/2)-(formEl.getHeight()/2);
formEl.setStyle({
left: widthCenter+'px',
top: heightCenter+'px',
position: 'absolute',
});
}
}
});
Ext.Container.LAYOUTS['absolutecenter'] = Ext.layout.AbsoluteCenterLayout;
我的表格:
Viewport = new Ext.Viewport({
renderTo: Ext.getBody(),
layout: 'border',
items: [{
region: 'center',
xtype: 'panel',
layout: 'absolutecenter',
baseCls: 'x-plain',
items:[{
id: 'form',
formId: 'admin-loginform',
xtype: 'form',
title: 'Authentication',
iconCls: 'admin-wnd-authentication',
frame: true,
autoHeight: true,
width: 270,
defaultType: 'textfield',
labelAlign: 'right',
...
答案 6 :(得分:0)
在面板中尝试以下内容:
style: {
"margin-left": "auto",
"margin-right": "auto"
},