angie_hawk7 发表于 2013-2-7 16:56:28

用CSS样式表控制Panel的位置

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Panel</title><link type="text/css" rel="stylesheet" href="../../ext/resources/css/ext-all.css"><style type="text/css">.contain{/* 设置背景 */background:#000;/* 居中设置 */margin:0 auto;width:500px;height:500px;/* 外层div相对定位 */position:relative;}.center{/* 居中设置 */margin:0 auto;/* 内层div相对外层div绝对居中 */position:absolute;/* 指定内层div的位置 */top:150px;left:150px;}</style><script type="text/javascript" src="../../ext/adapter/ext/ext-base.js"></script><script type="text/javascript" src="../../ext/ext-all.js"></script><script type="text/javascript">Ext.onReady(function() {var _panel = new Ext.Panel({frame:true,width:200,height:200,title:"面板"});_panel.addButton({text: "确 定"});_panel.addButton(new Ext.Button({text:"new Button",minWidth:100}));/* 动态创建元素 DomHelper.append */_panel.applyToMarkup(Ext.DomHelper.append(Ext.getBody(),{tag:"div",cls:"contain",cn:[{tag:"div",cls:"center"}]}, true).child("div"));});</script></head><body></body></html>


这里在向页面中添加元素的时候用到了applyToMarkup()方法,该方法类似render(),简单的解释一下:



如果在构造参数中定义:

    * renderTo:将当前对象放到renderTo指定的元素里面
    * applyTo:直接在当前对象之上构建

在构造方法外部定义:

    * render:等同于renderTo()
    * applyToMarkup:等同于applyTo()

DomHelper.append是Ext中动态创建Dom对象的方式,也是经常用到的一个方法,来看API中的定义



DomHelper.append ( Mixed el , Object/String o , ) : HTMLElement/Ext.Element



该方法创建了一个新的DOM元素,并且把它添加到第一个参数指定的DOM对象之中。


Parameters:

    * el : 可以是多种形式的上下文元素
    *
      o : 对象或字符串类型,指定的DOM 对象或者HTML行级元素
    *
      returnElement : 可选,Boolean 类型,如果值为true,返回一个Ext对象元素,否则返回普通的HTML元素

Returns:

    * HTMLElement/Ext.Element :新的HTML节点

上面例子中第二个参数指定是的DIV对象

{
tag:"div",
cls:"contain",
cn:[{
tag:"div",
cls:"center"
}]
}


    *tag:target,目标是DIV
    * cls:class,指定CSS 样式
    * cn:childNode,子节点
    * []:中括号中可以动态生成多个子节点对象
    *.child("div"):append到指定对象的子节点中第一个DIV上
页: [1]
查看完整版本: 用CSS样式表控制Panel的位置