ExtJs其实在某种程度上可以代替div+css来进行页面布局(不过经测试,在最新的Firefox3下,部分功能好象有点问题),今天我们来学习二种最基本的布局
1.Absolute 布局:这种最容易理解,直接用x,y值来绝对定位组件
2.Accordion布局:Accordion意为"手风琴",即最终效果可以象手风琴那样拉来拉去,说白了,就是类似QQ面板的功能
下面通过示例代码观察一下效果:
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv ="Content-Type" content ="text/html; charset=utf-8" />
< link rel ="stylesheet" type ="text/css" href ="../resources/css/ext-all.css" />
< script type ="text/javascript" src ="../adapter/ext/ext-base.js" ></ script >
< script type ="text/javascript" src ="../ext-all-debug.js" ></ script >
< script type ="text/javascript" src ="../Extjs_Intellisense.js" ></ script >
< title > Layout_Border示例 </ title >
< style type ="text/css" >
#panel2 .x-panel-body {
background : #ffe ;
color : #15428B ;
}
#panel2 .x-panel-header-text {
color : #f00 ;
}
</ style >
</ head >
< body >
< script type ="text/javascript" >
Ext.onReady( function () {
// layout:absolute(绝对定位布局)
var win = new Ext.Window({
title: " Absolute Layout " ,
height: 400 ,
width: 400 ,
plain: true ,
x: 10 ,
y: 10 ,
layout: ' absolute ' ,
items: [
new Ext.Panel({
title: " panel 1 " ,
x: 50 ,
y: 50 ,
width: 100 ,
height: 100 ,
html: " Positioned at x:50,y:50 " ,
frame: true
}),
new Ext.Panel({
title: " panel 2 " ,
x: 125 ,
y: 125 ,
width: 100 ,
height: 100 ,
html: " Positioned at x:125,y:125 " ,
frame: true
})
]
})
win.show();
// layout:Accordion(类似QQ面板的布局)
var win2 = new Ext.Window({
title: " Accordion Layout " ,
height: 400 ,
width: 200 ,
x: 420 ,
y: 10 ,
plain: true ,
layout: ' accordion ' ,
items: [
new Ext.Panel({
title: " panel 1 " ,
id: " panel1 " ,
html: " panel one " ,
frame: true
}),
new Ext.Panel({
title: " panel 2 " ,
id: " panel2 " ,
html: " panel two " ,
frame: true
})
]
})
win2.show();
});
</ script >
</ body >
</ html >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv ="Content-Type" content ="text/html; charset=utf-8" />
< link rel ="stylesheet" type ="text/css" href ="../resources/css/ext-all.css" />
< script type ="text/javascript" src ="../adapter/ext/ext-base.js" ></ script >
< script type ="text/javascript" src ="../ext-all-debug.js" ></ script >
< script type ="text/javascript" src ="../Extjs_Intellisense.js" ></ script >
< title > Layout_Border示例 </ title >
< style type ="text/css" >
#panel2 .x-panel-body {
background : #ffe ;
color : #15428B ;
}
#panel2 .x-panel-header-text {
color : #f00 ;
}
</ style >
</ head >
< body >
< script type ="text/javascript" >
Ext.onReady( function () {
// layout:absolute(绝对定位布局)
var win = new Ext.Window({
title: " Absolute Layout " ,
height: 400 ,
width: 400 ,
plain: true ,
x: 10 ,
y: 10 ,
layout: ' absolute ' ,
items: [
new Ext.Panel({
title: " panel 1 " ,
x: 50 ,
y: 50 ,
width: 100 ,
height: 100 ,
html: " Positioned at x:50,y:50 " ,
frame: true
}),
new Ext.Panel({
title: " panel 2 " ,
x: 125 ,
y: 125 ,
width: 100 ,
height: 100 ,
html: " Positioned at x:125,y:125 " ,
frame: true
})
]
})
win.show();
// layout:Accordion(类似QQ面板的布局)
var win2 = new Ext.Window({
title: " Accordion Layout " ,
height: 400 ,
width: 200 ,
x: 420 ,
y: 10 ,
plain: true ,
layout: ' accordion ' ,
items: [
new Ext.Panel({
title: " panel 1 " ,
id: " panel1 " ,
html: " panel one " ,
frame: true
}),
new Ext.Panel({
title: " panel 2 " ,
id: " panel2 " ,
html: " panel two " ,
frame: true
})
]
})
win2.show();
});
</ script >
</ body >
</ html >
效果图: