0

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

如何调整 portlet 的大小和位置,有没有办法应用通常的 CSS 定位技巧?出现在 Inspect Element 上的生成的 HTML 具有指定宽度(以像素为单位)的内联样式,这将胜过我在样式表中放入的任何内容。

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

4

2 回答 2

1

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

于 2011-04-27T20:29:47.690 回答
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。

于 2012-01-12T00:40:39.843 回答