ExtJS学习笔记 layout的9种样式风格

 

  • absolute :顾名思义,在容器内部,根据指定的坐标定位显示
  • accordion :这个是最容易记的,手风琴效果

  • 代码:
 Ext.onReady(function(){ 
 var panel=new Ext.Panel(//Ext.formPanel就是Panel中用了form布局 
       {          
        title:'容器组件', 
        layout:'accordion',        
        width:500, 
        height:200, 
        layoutConfig:{animate:false}, 
        items:[ 
         {title:'元素1',html:''}, 
         {title:'元素2',html:''}, 
         {title:'元素3',html:''}, 
         {title:'元素4',html:''} 
        ] 
       } 
      );
      panel.render('hello');
 });
效果如下:
ExtJS学习笔记 <wbr>layout的9种样式风格总结(1)


  • anchor

    这个效果具体还不知道有什么用,就是知道注意一下
    1.容器内的组件要么指定宽度,要么在anchor中同时指定高/宽,
    2.anchor值通常只能为负值(指非百分比值),正值没有意义,
    3.anchor必须为字符串值
    代码:
     Ext.onReady(function() { 
             var panel1 = new Ext.Panel({ 
                 title: "panel1", 
                 height: 100, 
                 anchor: '-50', 
                 html: "高度等于100,宽度=容器宽度-50" 
             }); 
      
             var panel2 = new Ext.Panel({ 
                 title: "panel2", 
                 height: 100, 
                 anchor: '50%', 
                 html: "高度等于100,宽度=容器宽度的50%" 
      
             }); 
      
             var panel3 = new Ext.Panel({ 
                 title: "panel3", 
                 anchor: '-10, -250', 
                 html: "宽度=容器宽度-10,高度=容器宽度-250" 
      
             }); 
      
             var win = new Ext.Window({ 
                 title: "Anchor Layout", 
                 height: 400, 
                 width: 400, 
                 plain: true,                     
                 layout: 'anchor', 
                 items: [panel1, panel2,panel3]             
             }); 
             win.show(); 
         });
    效果如下:                                                                                    
                      ExtJS学习笔记 <wbr>layout的9种样式风格总结(1)

    • border :将容器分为五个区域:east,south,west,north,center

      代码如下:
          Ext.onReady(function() {   
                 var win;      
                     //创建TabPanel 
                     var tabs = new Ext.TabPanel({ 
                         region: 'center', //border布局将页面分成东南西北中五部分,这里是中间
                         margins: '3 3 3 0', 
                         activeTab: 0, 
                         defaults: { 
                             autoScroll: true 
                         }, 
                         items: [{ 
                             title: 'Bogus Tab', 
                             html: "第一个Tab的内容." 
                         }, { 
                             title: 'Another Tab', 
                             html: "我是另一个Tab" 
                         }, { 
                             title: 'Closable Tab', 
                             html: "这是一个可以关闭的Tab", 
                             closable: true 
         }] 
                         }); 
          
                         //定义一个Panel 
                         var nav = new Ext.Panel({ 
                             title: 'Navigation', 
                             region: 'west', //放在西边,即左侧 
                             split: true, 
                             width: 200, 
                             collapsible: true, //允许伸缩 
                             margins: '3 0 3 3', 
                             cmargins: '3 3 3 3' 
                         }); 
          
                         //如果窗口第一次被打开时才创建 
                         if (!win) { 
                             win = new Ext.Window({ 
                                 title: 'Layout Window', 
                                 closable: true, 
                                 width: 600, 
                                 height: 350, 
                                 border : false, 
                                 plain: true, 
                                 layout: 'border', 
                                 closeAction:'hide', 
                                 items: [nav, tabs]//把上面创建的panel和TabPanel放在window中,并采用border方式布局 
                             }); 
                         } 
                         win.show(); 
                
                 });
      效果图:
      ExtJS学习笔记 <wbr>layout的9种样式风格总结(1)

      • card :像安装向导一样,一张一张显示

         

        代码如下:
            Ext.onReady(function() {      
                    var i = 0;       
                    var navHandler = function(direction) { 
                        if (direction == -1) { 
                            i--; 
                            if (i < 0) { i = 0; } 
                        } 
            
                       if (direction == 1) { 
                           i++; 
                           if (i > 2) { i = 2; return false; } 
                       } 
            
            
                       var btnNext = Ext.get("move-next").dom.document.getElementsByTagName_r("button")[1]; 
                       var btnBack = Ext.get("move-next").dom.document.getElementsByTagName_r("button")[0]; 
            
                       if (i == 0) { 
                           btnBack.disabled = true; 
                       } 
                       else { 
                           btnBack.disabled = false; 
                       } 
            
                       if (i == 2) { 
                           btnNext.value = "完成"; 
                           btnNext.disabled = true; 
                       } 
                       else { 
                           btnNext.value = "下一步"; 
                           btnNext.disabled = false; 
                       } 
            
                       card.getLayout().setActiveItem(i); 
            
                   }; 
            
            
                   var card = new Ext.Panel({ 
                       width: 200, 
                       height: 200, 
                       title: '注册向导', 
                      layout: 'card', 
                       activeItem: 0, // make sure the active item is set on the container config! 
                       bodyStyle: 'padding:15px', 
                       defaults: { 
                           border: false 
                       }, 
                       bbar: [ 
                           { 
                               id: 'move-prev', 
                               text: '上一步', 
                               handler: navHandler.createDelegate(this, [-1])                     
                           }, 
                           '->', 
                           { 
                               id: 'move-next', 
                               text: '下一步', 
                              handler: navHandler.createDelegate(this, [1]) 
                           } 
                       ], 
            
                      items: [{ 
                           id: 'card-0', 
                           html: '<h1>欢迎来到注册向导!</h1><p>Step 1 of 3</p>' 
                       }, { 
                           id: 'card-1', 
                           html: '<h1>请填写注册资料!</h1><p>Step 2 of 3</p>' 
                       }, { 
                           id: 'card-2', 
                           html: '<h1>注册成功!</h1><p>Step 3 of 3 - Complete</p>' 
           }], 
            
                           renderTo: "hello" 
                       }); 
            
            
            
                   }); 
        效果图:
        ExtJS学习笔记 <wbr>layout的9种样式风格总结(1)

         

        • column : 把整个容器看成一列,然后向容器放入子元素时

        代码:
        Ext.onReady(function() {
                    new Ext.Panel({
                                renderTo : "hello",
                                title : "容器组件",
                                layout : "column",
                                width : 500,
                                height : 100,
                                items : [{title : "列1",
                                          columnWidth : .2
                                        },{title : "列2",
                                           columnWidth : .3
                                        },{title : "列3",
                                           columnWidth : .3
                                        },{title : "列4",
                                           columnWidth : .2
                                        }]
                            });
                });
        效果如下:
                  ExtJS学习笔记 <wbr>layout的9种样式风格总结(2)

        • fit : 一个子元素将充满整个容器(如果多个子元素则只有一个元素充满整个容器)
        代码:
         Ext.onReady(function(){ 
         var panel=new Ext.Panel( 
               { 
                renderTo:'hello', 
                title:'容器组件', 
                layout:'fit', 
                width:500, 
                height:100, 
                items:[ 
                 {title:'子元素1'}, 
                 {title:'子元素2'}, 
                 {title:'子元素3'}, 
                 {title:'子元素4'}, 
                 {title:'子元素5'} 
                ] 
               } 
              ); 
         });

        效果如下:
                 ExtJS学习笔记 <wbr>layout的9种样式风格总结(2)

        • form : 是一种专门用于管理表单中输入字段的布局
        代码:
            Ext.onReady(function() { 
                    var win = new Ext.Window({ 
                        title: "form Layout", 
                        height: 150, 
                        width: 230, 
                        plain: true, 
                        bodyStyle: 'padding:15px', 
                        items:  
                        { 
                           xtype: "form", 
                           labelWidth: 30, 
                           defaultType: "textfield", 
                           frame:true, 
                           items:  
                           [ 
                               { 
                                   fieldLabel:"姓名", 
                                   name:"username", 
                                   allowBlank:false 
                               }, 
                               { 
                                   fieldLabel:"呢称", 
                                   name:"nickname" 
                               }, 
                               { 
                                  fieldLabel: "生日", 
                                   xtype:'datefield', 
                                   name: "birthday", 
                                   width:127 
                               } 
                           ] 
                       } 
                   }); 
                   win.show(); 
               }); 
        效果如下:
                  ExtJS学习笔记 <wbr>layout的9种样式风格总结(2)
        这个输入用的比较多,有个比较全的,网址: http://www.17ext.com/showtopic-255.aspx ,需要什么就去改什么吧 :)

        • table : 按照普通表格的方法布局子元素,用layoutConfig:{columns:3},//将父容器分成3列
        代码:
        Ext.onReady(function() {
                    var panel = new Ext.Panel({
                                renderTo : "hello",
                                title : "容器组件",
                                width : 500,
                                height : 200,
                                layout : "table",
                                layoutConfig : {
                                    columns : 3
                                },
                                items : [{
                                            title : "子元素1",
                                            html : "这是子元素1中的内容",
                                            rowspan : 2,
                                            height : 100
                                        },{
                                            title : "子元素2",
                                            html : "这是子元素2中的内容",
                                            colspan : 2
                                        },{
                                            title : "子元素3",
                                            html : "这是子元素3中的内容"
                                        },{
                                            title : "子元素4",
                                            html : "这是子元素4中的内容"
                                        }]
                            });
                });
        效果如下:
                  ExtJS学习笔记 <wbr>layout的9种样式风格总结(2)

        • 0
          点赞
        • 0
          收藏
          觉得还不错? 一键收藏
        • 0
          评论
        评论
        添加红包

        请填写红包祝福语或标题

        红包个数最小为10个

        红包金额最低5元

        当前余额3.43前往充值 >
        需支付:10.00
        成就一亿技术人!
        领取后你会自动成为博主和红包主的粉丝 规则
        hope_wisdom
        发出的红包
        实付
        使用余额支付
        点击重新获取
        扫码支付
        钱包余额 0

        抵扣说明:

        1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
        2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

        余额充值