1:Ext.layout.ColumnLayout
它是为构建某个垂直式结构而准备的布局,当中包含已指定宽度的多个列,可以使用columnWidth或者width来指定子元素所占的列宽度
属性width总是以像素来固定宽度,并必须是数字大于或者等于1,属性columnWidth是百分比相对单位,并必须是百分比字符串区间是大于0小于1
使用columnWidth属性来分配列时,columnWidth加起来必须是等于1(或110%),否则渲染出来的布局可能会出现不正常。
2:指定列宽度的三种方式
第一:通过width属性来指定列宽度
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>使用width属性指定列宽度</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <link rel="stylesheet" type="text/css" href="ext3.2/resources/css/ext-all.css"></link> <script type="text/javascript" src="ext3.2/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="ext3.2/ext-all.js"></script> <script type="text/javascript" src="ext3.2/src/local/ext-lang-zh_CN.js"></script> <script type="text/javascript"> Ext.onReady(function() { new Ext.Panel({ renderTo: 'column', width: 500, height: 150, title: 'Columnayout', layout: 'column', //指定布局方式为column defaults: { bodyStyle: 'background-color: #FFFFFF', //设置面板的背景色 frame: true }, frame: true, items: [ {title: 'first', html: '第一列', width: 200, height: 100}, {title: 'second', html: '第二列', width: 200, height: 100}, ] }); }); </script> </head> <body> <div id="column"></div> </body> </html>
程序效果:
通过设置子面板的width属性,来设定固定的列宽度分别为200、200以及剩余的宽度。
第二:columnWidth属性指定列宽度
代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>columnWidth属性指定列宽度</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <link rel="stylesheet" type="text/css" href="ext3.2/resources/css/ext-all.css"></link> <script type="text/javascript" src="ext3.2/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="ext3.2/ext-all.js"></script> <script type="text/javascript" src="ext3.2/src/local/ext-lang-zh_CN.js"></script> <script type="text/javascript"> Ext.onReady(function() { new Ext.Panel({ renderTo: 'column', width: 500, height: 150, title: 'Columnayout', layout: 'column', //指定布局方式为column frame: true, defaults: { bodyStyle: 'background-color: #FFFFFF', //设置面板的背景色 frame: true }, items: [ //通过columnWidth属性来指定宽占容器的百分比 {title: 'first', html: '第一列', columnWidth: 0.4, height: 100}, {title: 'second', html: '第二列', columnWidth: 0.6, height: 100}, ] }); }); </script> </head> <body> <div id="column"></div> </body> </html>
程序效果图:
第三: width和columnWidth属性指定列宽度
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>columnWidth属性指定列宽度</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <link rel="stylesheet" type="text/css" href="ext3.2/resources/css/ext-all.css"></link> <script type="text/javascript" src="ext3.2/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="ext3.2/ext-all.js"></script> <script type="text/javascript" src="ext3.2/src/local/ext-lang-zh_CN.js"></script> <script type="text/javascript"> Ext.onReady(function() { new Ext.Panel({ renderTo: 'column', width: 500, height: 150, title: 'Columnayout', layout: 'column', //指定布局方式为column frame: true, defaults: { bodyStyle: 'background-color: #FFFFFF', //设置面板的背景色 frame: true, height: 100 }, items: [ {title: 'first', html: '第一列', width: 150}, // 指定列宽度为150像素 {title: 'second', html: '第二列', columnWidth: 0.4}, //指定列宽度为剩下宽度的40% {title: 'third', html: '第三列', columnWidth: 0.6} //指定列宽度为剩下宽度的60% ] }); }); </script> </head> <body> <div id="column"></div> </body> </html>
程序效果:
设置panel的宽度为500,
第一列宽度=150(因为第一列是通过width配置项指定的固定值)
第二列宽度=(500-150)* 0.4 (按比例分割剩余宽度)
第三列宽度=(500-150)* 0.6(说明:按比例分割剩余宽度)