ExtJS门户和portlet可以像通常的CSS元素一样定位吗?

时间:2011-04-27 18:42:49

标签: javascript extjs positioning portlet portal-system

我想创建一个门户网站,其ExtJS portlet适合固定宽度的布局。现在它们似乎占据了宽度的100%,并且元素似乎应用了内联样式以提供最大宽度,并且为门户网站的项目指定“宽度:50%”样式的技巧似乎没有做任何事情。

如何确定portlet的大小和位置,是否有任何方法可以应用常规的CSS定位技巧? Inspect Element上显示的生成的HTML有一个内联样式,指定宽度(以像素为单位),这将胜过我放在样式表中的任何内容。

我希望将门户网站显示为在页面中具有相对定位的常规块元素。这是可能的,如果没有,那么我的下一个最佳选择是什么?

2 个答案:

答案 0 :(得分:1)

portlet由布局管理,这是设置大小,响应视口大小调整等等。您必须修改现有布局或创建自己的自定义布局来执行此操作(或者构建自己的门户网站,而不是基于现有的例子。)

答案 1 :(得分:1)

似乎我有答案。覆盖视口定义以将渲染自定义为div标记。这是我的代码:

Ext.override(Ext.container.Viewport, {
initComponent : function() {
    var me = this,
        html = Ext.fly(document.body.parentNode),
        el;
    me.callParent(arguments);
    html.addCls(Ext.baseCSSPrefix + 'viewport');
    me.el = el = 'dashboard';
    el.setHeight = Ext.emptyFn;
    el.setWidth = Ext.emptyFn;
    el.setSize = Ext.emptyFn;
    me.allowDomMove = false;
    Ext.EventManager.onWindowResize(me.fireResize, me);
    me.renderTo = me.el;
    me.height = Ext.Element.getViewportHeight() - 70;
}});

其中me.el是元素渲染的id。