Как исправить z-index с помощью модальной и липкой навигационной панели в Vue.js ?

#css #vue.js #navbar #z-index

#css #vue.js #навигационная панель #z-index

Вопрос:

Заранее спасибо за вашу помощь.
Я обновлю этот пост решением, потому что я думаю, что у некоторых людей может возникнуть такая же проблема, и после некоторого поиска в Интернете я не нашел ответа.

Проблема
Я использую модальный компонент в компоненте, включенном в мое приложение.vue. Все работает, за исключением навигационной панели, потому что, когда я навожу курсор мыши на окно, навигационная панель становится белой и переходит на черный фон модальной.

Вы можете видеть переднюю часть на изображении ниже, когда мышь выключена.
// К сожалению, мне нужно 10 репутаций, чтобы добавить его.

Чтобы исправить это, я много чего перепробовал, но сейчас ничего не работает. Если я удалю z-index: 1 с навигационной панели, проблема будет устранена, но если я добавлю на свой веб-сайт какой-нибудь контент с потрясающим шрифтом, навигационная панель появится позади.

css

 nav {
    display: flex;
    background-color: #FFFFFF;
    height: 50px;
    position: sticky;
    top: 0px;
    z-index: 1;
}
.modal-mask {
    position: fixed;
    top: 0;
    left:0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.4);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100;
}
.modal {
    background-color: #FAFAFA;
    display: flex;
    flex-direction: column;
}
  

Приложение.vue

 <template>
  <div id="app">
    <NavBar></NavBar>
    <router-view/>
  </div>
</template>

<script>
  import NavBar from './components/layout/Navbar'
  export default {
    components: {
      NavBar
    },
  }
</script>
  

Модальный

 <template>
        <div class="modal-mask">
            <div class="modal"
                role="dialog">
                <slot name="body">
                    No content
                </slot>
            </div>
        </div>
</template>

<script>
    export default {
        name: 'modal',
        methods: {
            close() {
                this.$emit('close');
            },
        },
    };
</script>
  

Ответ №1:

z-index работает только с position попробуйте присвоить position классу .modal относительный или абсолютный

Комментарии:

1. К сожалению, это не так просто. Проблема с черным экраном возникает из-за модальной маски, и у меня на ней зафиксирована позиция; (