Странная рамка за какой-то кнопкой [EXTJS 6.5.2]

Столкнулся со странной проблемой с плавающими кнопками. На самом деле, когда я создаю кнопку, а затем перемещаю ее туда с помощью функции setPosition, появляется нижняя граница.

Под границей

Дополнительные пояснения:

У меня есть интерфейс для планшета с большим количеством кнопок, некоторые из них статичны, а некоторые плавают.

Статические кнопки создаются так, как в представлении:

{
    xtype: 'button',
    scale: 'large',
    height: 60,
    width: 60,
    margin: 10,
    ui: 'lstbuttonclrounded-red',
    cls: 'x-btn-action',
    iconCls: 'x-fa fa-arrow-left'
}

И они отображаются так: рендеринг статических кнопок

Плавающие кнопки создаются так, как в представлении:

{
    xtype: 'panel',
    [...]
    listeners: {
        afterrender: { 
            fn: function(){
                var obj = Ext.create({
                    xtype: 'button',
                    width: 60,
                    height: 60,
                    ui: 'lstbuttonclrounded',
                    iconCls: 'x-fa fa-floppy-o',
                    scale: 'large',
                    scope: this.getController(),
                    floating: true,
                    renderTo: this.body
                });

                this.saveBtn = this.add(obj);

                obj.setPosition(0, 0);
            }
        }
    }
}

После этого в контроллере есть такое позиционирование:

this.saveBtn.setPosition(this.getWidth()-70, this.getHeight() - 105);

И они отображаются так:

рендеринг плавающей кнопки

Вот где появляется странная граница...

Используемые пользовательские интерфейсы такие же, только цвет меняется.

Была ли у вас когда-нибудь подобная проблема, и если да, то решили ли вы ее и как?

Большое спасибо за то, что читаете меня и за то, что нашли время, чтобы ответить мне.


person Enzo B.    schedule 25.07.2018    source источник
comment
Можете ли вы опубликовать работающую fiddle для того же самого?   -  person Rohit Sharma    schedule 25.07.2018
comment
Конечно создам.   -  person Enzo B.    schedule 25.07.2018
comment
Вы знаете, как создать или просто смоделировать тему (пользовательский интерфейс) в скрипке, пожалуйста?   -  person Enzo B.    schedule 25.07.2018
comment
Вот моя скрипка без пользовательского интерфейса: fiddle.sencha.com/#view/editor&fiddle/2jnp А то работает без всяких границ... Я запутался.   -  person Enzo B.    schedule 25.07.2018


Ответы (1)


Итак, между скрипкой и вашим приложением есть разница, но я думаю, что это может помочь. Я предполагаю, что проблема, с которой вы столкнулись, связана со стандартным CSS темы ext. Таким образом, по умолчанию расширение, которое вы выбрали, дает вашей кнопке теневой CSS. Но вы можете переопределить его, используя то же имя. Я отредактировал вашу скрипку и вместо плавающей кнопки поместил ваш код с пользовательским интерфейсом, который вы разместили здесь. Таким образом, есть два разных хака, так как кнопка на скрипке имеет разные css, а кнопка с вашим пользовательским интерфейсом имеет другой. пришлось изменить фон первой панели на красный, а значок кнопки на белый. Ваша кнопка в скрипке использует этот css:

.x-btn-default-large

Итак, в html я добавил новый стиль с таким же названием:

.x-btn-default-large {
background-color: red !important;
border-color: transparent !important;
}

Для кнопки пользовательского интерфейса он использует этот css для добавления тени:

.x-css-shadow

Итак, я настроил это, чтобы:

.x-css-shadow{
box-shadow: none !important;
}

Пожалуйста, взгляните на эту скрипку для лучшего объяснения. Обязательно загляните в index.html, там происходит основное волшебство. Попробуйте удалить по одной строке из css, чтобы вы знали, что делает каждая строка. Я тоже новичок. Эта штука немного поигралась с консолью. Если вы не можете заставить его работать, опубликуйте скрипт с вашим фактическим кодом и прокомментируйте ссылку. Я буду работать над этим.

person Shez Ratnani    schedule 26.07.2018
comment
Большое спасибо, он отлично работает с x.-cc.shadow! - person Enzo B.; 26.07.2018