Могут ли порталы и порталы ExtJS быть расположенными как обычные элементы CSS?
-
24-10-2019 - |
Вопрос
Я хотел бы сделать портал, и его портлеты ExtJS помешались в макету с фиксированной шириной. Прямо сейчас они, кажется, берут 100% ширины, и элементы, кажется, имеют встроенные стили, применяемые для того, чтобы дать максимальную ширину, и трюки, такие как указание стиля «ширины: 50%», поскольку предметы портала ничего не делают.
Как портлеты могут быть размещены и расположены, и есть ли способ применять обычные навыки позиционирования CSS? Сгенерированный HTML, как он появляется в Expect Element, имеет встроенный стиль, указывающий ширину в пикселях, что превзойдет все, что я ставлю в таблице стилей.
Я хотел бы отобразить портал как обычный элемент блока с относительным позиционированием на странице. Это возможно, а если нет, каковы мои следующие лучшие варианты?
Решение
Портлетами управляются макетом, которая является тем, что устанавливает размеры, отвечает на изменения Viewport и т. Д. Вам нужно изменить существующий макет или создать свой собственный макет для этого (или построить свой собственный портал, который не основан на существующий пример).
Другие советы
Кажется, у меня есть ответ. Перезаписать определение Viewport для настройки рендеринга в тег 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;
}});
где я - идентификатор элемента рендеринга.