Невозможно перезаписать свойство css top в главном компоненте меню реакции

Я пытаюсь избавиться от пробела, как показано на изображении ниже:

введите здесь описание изображения

Я использую компонент меню Primereact из этой документации.

Вот мой код конструктора для справки:

constructor() {
        super();
            this.state = {
                items: [
                    {
                        label: 'First Services',
                        items: [
                        {label: 'firstitem', 
                        command: (event) => {window.open('http://someurl','_blank');}},

                        {label: 'firstitemname', 
                        command: (event) => {window.open('http://someurl#get-firstitemname','_blank');}},


                        {label: 'firstcategoryname', 
                        command: (event) => {window.open('http://someurl#get-firstcategoryname','_blank');}},



                            ]
                    }, 
                    {
                        label: 'Second Services',
                        items: [
                        {label: 'testforuser ',
                        command: (event) => {window.open('http://someurl#get-testforuser','_blank');}},

                        {label: 'testforproject', 
                        command: (event) => {window.open('http://someurl#get-testforproject','_blank');}},


                        {label: 'testforprotocol ',
                        command: (event) => {window.open('http://someurl#get-testforprotocol','_blank');}}




                    ]
                    },
                    {
                        label: 'Workflows ',
                        items: [
                        {label: 'Workflow for User ',
                         command: (event) => {window.open('http://someurl#workflow-section','_blank');}}
                    ]
                    }, 
                ]
            };
     }  

И вот мои определенные компоненты Menu и Button:

                      <Menu 
                        model={this.state.items} 
                        popup={true} 
                        style={{fontSize:'16px'},{width:'12%'}}
                        ref={el => this.menu = el}
                        />
                         <Button  
                        label="My DropDown Menu" 
                        icon="pi pi-bars"
                        style={{width:'12%'},{backgroundColor:'#000000'}}

                         onClick={

                            (event)=>this.menu.toggle(event)
                        }
                        />

Я понял, почему между Button и Menu есть пробел. Когда я щелкнул правой кнопкой мыши на MY DROPDOWN MENU и выбрал Inspect Element Q в своем браузере Firefox, я увидел следующее: для свойства css top установлено значение 118.5px. :

введите здесь описание изображения

Я пытаюсь перезаписать свойство top и изменить его на 60px с 118.5px. Для этого я попытался изменить свой код следующим образом:

                   <Menu 
                    model={this.state.items} 
                    popup={true} 
                    style={{fontSize:'16px'},{width:'12%'},{marginTop:'60px'}}
                    ref={el => this.menu = el}
                    /> 

Но в итоге он отображался как отдельное свойство, например:

введите здесь описание изображения

Как я могу изменить свойство top?


person Dan    schedule 27.11.2019    source источник


Ответы (2)


Top и margin-top — это две разные вещи в CSS.

style={{
    top:'60px'
}}

CSS: Top vs Margin-top

person Renaldo Balaj    schedule 27.11.2019
comment
Итак, как мне изменить значение top в моем примере? Вы можете ответить на мой вопрос? - person Dan; 27.11.2019
comment
да, как и в коде, который я дал, ДОБАВЬТЕ top: '60px' там нет места для поля (маржа - это еще одна вещь, которая вам там не нужна), дайте отзыв, если это сработало :) НЕСКОЛЬКО СЛОВ: замените 'marginTop' на 'top ' и магия - person Renaldo Balaj; 27.11.2019
comment
Спасибо. Он появился там впервые, и когда я начал играть с ним (под игрой я имею в виду, когда я щелкнул раскрывающееся меню, а затем пару раз щелкнул правой кнопкой мыши на элементе «Проверить Q»), он снова изменился на 118,5 пикселей и еще один. раз он изменился на -243,5px, и та же проблема все еще сохраняется :( - person Dan; 27.11.2019

Сначала проверьте, какие классы используются в меню primereact, используя консоль, затем создайте файл .css и импортируйте его в файл .js. Напишите то же имя класса, которое вы узнали с помощью консоли, а затем переопределите нужные свойства. Затем снова запустите приложение. Он должен работать. P.S. Я пробовал это раньше, и это сработало для меня.

person Anish Arya    schedule 02.03.2020