首页 Extjs学习札记之七 布局

Extjs学习札记之七 布局

举报
开通vip

Extjs学习札记之七 布局Extjs学习札记之七 布局 c_a_3(); Extjs学习笔记之七 布局 Extjs Layout Browser . Extjs3.1.0 版本支持17种,下面挑一些重要的简要的说明一下,要看效果,去上面给的链 接,不再贴图了。给Panel设置Layout的方法是一样的,就是设置Panel的Layout配置项。 1. AbsoluteLayout 可以通过Panel内部组件的决定位置来布局。通过x,y来指定。 示例用法: 复制代码 代码如下: new Ext.Panel({ layout:...

Extjs学习札记之七 布局
Extjs学习札记之七 布局 c_a_3(); Extjs学习笔记之七 布局 Extjs Layout Browser . Extjs3.1.0 版本支持17种,下面挑一些重要的简要的说明一下,要看效果,去上面给的链 接,不再贴图了。给Panel设置Layout的方法是一样的,就是设置Panel的Layout配置项。 1. AbsoluteLayout 可以通过Panel内部组件的决定位置来布局。通过x,y来指定。 示例用法: 复制代码 代码如下: new Ext.Panel({ layout: 'absolute', title: 'AbsuluteLayout', renderTo: document.body, frame: true, defaultType: 'textfield', width: 400, height:250, items: [{ x: 0, y: 5, xtype: 'label', text: 'Send To:' }, { x: 60, y: 0, name: 'to' }, { x: 0, y: 35, xtype: 'label', text: 'Subject:' }, { x: 60, y: 30, name: 'subject' }, { x: 0, y: 60, xtype: 'textarea', name: 'msg' }] }); 2.AccordionLayout Accordion的意思是手风琴,顾名思义,这种布局可以向手风琴那样,有的组件张开,有的 闭合。这种效果作为侧边栏比较有用。 示例用法: 复制代码 代码如下: new Ext.Panel({ title: 'Accordion Layout', layout: 'accordion', renderTo: document.body, defaults: { // applied to each contained panel bodyStyle: 'padding:15px' }, layoutConfig: { // layout-specific configs go here titleCollapse: true, animate: true, activeOnTop: false }, items: [{ title: 'Panel 1', html: ' p Panel content! /p ' }, { title: 'Panel 2', html: ' p Panel content! /p ' }, { title: 'Panel 3', html: ' p Panel content! /p ' }] }); }); 3. AnchorLayout 这种Layout非常有用,尤其是在布局含有GridView这一类控件的页面的时候,AnchorLayout实际上类似于Winform的form默认的布局方式,不过它仅仅可以固定某一个组件距离页面边框(右边框和底边框)的距离(绝对的像素或者相对比例)。 通过anchor属性设置,anchor属性的设置API文档上解释的十分清楚,就直接摘抄过来了: anchor : String This configuation option is to be applied to child items of a container managed by this layout (ie. configured withlayout:'anchor'). This value is what tells the layout how an item should be anchored to the container. items added to an AnchorLayout accept an anchoring-specific config property of anchor which is a string containing two values: the horizontal anchor value and the vertical anchor value (for example, '100% 50%'). The following types of anchor values are supported: Percentage : Any value between 1 and 100, expressed as a percentage. The first anchor is the percentage width that the item should take up within the container, and the second is the percentage height. For example: // two values specified anchor: '100% 50%' // render item complete width of the container and // 1/2 height of the container // one value specified anchor: '100%' // the width value; the height will default to autoOffsets : Any positive or negative integer value. This is a raw adjustment where the first anchor is the offset from the right edge of the container, and the second is the offset from the bottom edge. For example: // two values specified anchor: '-50 -100' // render item the complete width of the container // minus 50 pixels and // the complete height minus 100 pixels. // one value specified anchor: '-50' // anchor value is assumed to be the right offset value // bottom offset will default to 0Sides : Valid values are 'right' (or 'r') and 'bottom' (or 'b'). Either the container must have a fixed size or an anchorSize config value defined at render time in order for these to have any effect. Mixed : Anchor values can also be mixed as needed. For example, to render the width offset from the container right edge by 50 pixels and 75% of the container's height use: anchor: '-50 75%'不过我将anchor的第一个属性也就是Offset设置成正数似乎没什么效 果,虽然文档中说Offsets : Any positive or negative integer value. 示例用法: 复制代码 代码如下: new Ext.Panel({ layout: 'anchor', title:'anchor', renderTo: document.body, items: [{ title: 'Item 1', html: 'Content 1', width: 800, anchor: 'right 20%' }, { title: 'Item 2', html: 'Content 2', width: 300, anchor: '50% 30%' }, { title: 'Item 3', html: 'Content 3', width: 600, anchor:'-100 50%' }] }); 4. BorderLayout BorderLayout通过指定页面上的区域来布局,至少要有一个center区域,然后可以设置 west,south,east,north区域,作为辅助的页面。通常适合大型页面的布局,中部为主要功 能区,两侧,底部可以作为工具栏。 复制代码 代码如下: var myBorderPanel = new Ext.Panel({ renderTo: document.body, width: 700, height: 500, title: 'Border Layout', layout: 'border', items: [{ title: 'South Region is resizable', region: 'south', // position for region height: 100, split: true, // enable resizing minSize: 75, // defaults to 50 maxSize: 150, margins: '0 5 5 5' }, { // xtype: 'panel' implied by default title: 'West Region is collapsible', region: 'west', margins: '5 0 0 5', width: 200, collapsible: true, // make collapsible cmargins: '5 5 0 5', // adjust top margin when collapsed id: 'west-region-container', layout: 'fit', unstyled: true }, { title: 'Center Region', region: 'center', // center region is required, no width/height specified xtype: 'container', layout: 'fit', margins: '5 5 0 0' }] }); 5. ColumnLayout ColumnLayout可以指定面板的宽度,用width指定的是像素,columnWidth指定百分比,必 须是0-1之间的数字。也可以两者都用,都用的情况下,百分比是整个页面的宽度减去固定 宽度的列剩余的宽度的百分比。 示例用法: 复制代码 代码如下: var p = new Ext.Panel({ title: 'Column Layout - Mixed', layout: 'column', renderTo: document.body, items: [{ title: 'Column 1', columnWidth: .3, html:' div Hello World /div ' }, { title: 'Column 2', html:' div Hello /div ', columnWidth: .6 }, { title: 'Column 3', columnWidth: .1, html:' div Hello /div div Another Line /div ' }] }); 这个用法是和API文档以及官方例子是一样的,但是这些列的宽度确不能随着浏览器大小的改变而改变,每次总要刷新一下才能重新适应新的浏览器宽度。但是官网的例子上确实可以随着浏览器的拖动内部的面板大小也跟着变化的。很奇怪。如果有朋友知道,请指点迷津下。 布局的用法都差不多,就不再继续写下去了。关键是在实际应用中灵活选用。 详细出处参考:
本文档为【Extjs学习札记之七 布局】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_686908
暂无简介~
格式:doc
大小:25KB
软件:Word
页数:0
分类:互联网
上传时间:2018-04-29
浏览量:8