Не удается получить элемент позади другого с Z-индексом и объявлением позиции

#javascript #reactjs #position

#javascript #reactjs #позиция

Вопрос:

У меня есть div, который я использую в качестве заголовка / навигационного меню. У этого div есть падающая тень. При наведении курсора мыши на пункт меню «Конфигурация» появляется выпадающее меню. Я хочу, чтобы это выпадающее меню отображалось за тенью. Я использую объявленные позиции и z-индекс для всех элементов. Выпадающий список имеет z-индекс 99, а заголовок div равен индексу 100. Выпадающий список не будет отображаться за заголовком div.

Я использую Gatsby, React и Radium. Синтаксис приведенного ниже стиля заключается в том, что я использую объект «styles» в Javascript для применения стилей.

Я хочу, чтобы выпадающее меню находилось за тенью для элемента над ним.

 headerDiv: {
    background: 'white',
    marginBottom: '1.45rem',
    paddingLeft: '10px',
    paddingRight: '10px',
    boxShadow: '0px 6px 6px rgba(0,0,0,0.2)',
    zIndex: '100',
    position: 'relative'
},
dropdownMenu: {
    opacity: '1',
    position: 'absolute',
    top: '95%',
    left: '0',
    zIndex: '99',
    padding: '20px 100px 0px 20px',
    whiteSpace: 'nowrap',
    float: 'left',
    minWidth: '160px',
    margin: '2px 0 0',
    fontSize: '12px',
    textAlign: 'left',
    listStyle: 'none',
    backgroundColor: 'white',
    backgroundClip: 'padding-box',
    boxShadow: '0 6px 12px rgba(0,0,0,0.175)'
}
 

Ответ №1:

Я решил это с помощью обходного пути. Я отключил z-индекс для всех элементов. Затем я создал пустой div и дал ему тень. Я присвоил этому div z-индекс 99, а меню навигации по заголовку z-индекс 99 (поэтому он отображается за пустым div). Теперь все работает так, как задумано.