Z-index не работает, чтобы изображение оставалось наверху ... Включить / выключить изображение, меню скрывается - PullRequest
1 голос
/ 30 мая 2020

Итак, я использую флажок ввода, чтобы включать / выключать талисман lo go поверх фона основного контейнера div. Lo go должен начинаться с верхнего 0 слева 0 точно так же, как фон, но когда я включаю его, чтобы показать талисман lo go, меню с флажками скрывается.

My z- index не будет работать, и я ищу любые решения, чтобы сохранить группу флажков в меню поверх всех.

Спасибо

body, html {
  height: 100%;
}

#map {
  background-image: url(https://image.freepik.com/free-vector/vector-illustration-mountain-landscape_1441-71.jpg);
  height: 1080px;
  width: 1080px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 1080px 1080px;
  position: relative;
  }

  #menu {
    display: block;
    width: 100px;
  }

input:checked + .hidable {
    display: none;
    position: absolute;
    z-index: 10;
}
  
input:not(:checked) + .showable {
    display: none;
    position: absolute;
    z-index: 10;
  }

  #mascot1 {
    position: absolute;
    top: 0px;
    left: 0px;
    z-index: 1;
  }
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="styles.css">
<title>Splash Page</title>
</head>
<body>

  <div id="map">
    <div id="menu">
      <input type="checkbox" /> Mascot 1
      <div class="showable"><img id="mascot1" src="https://banner2.cleanpng.com/20180510/fkq/kisspng-tiger-mascot-5af4168e2aa482.2537194215259459981747.jpg" alt="Map Locations"></div>
      <input type="checkbox" /> Mascot 2
      <div class="showable"><img id="mascot2" src="https://banner2.cleanpng.com/20180510/fkq/kisspng-tiger-mascot-5af4168e2aa482.2537194215259459981747.jpg" alt="Map Locations"></div>
      <input type="checkbox" /> Mascot 3
      <div class="showable"><img id="mascot3" src="https://banner2.cleanpng.com/20180510/fkq/kisspng-tiger-mascot-5af4168e2aa482.2537194215259459981747.jpg" alt="Map Locations"></div>
    </div>
  </div>



</body>
</html>

Ответы [ 2 ]

2 голосов
/ 30 мая 2020

добавить негатив z-index ко всему изображению и z-index:0 к основной оболочке. Затем вы можете удалить все остальные z-index

body,
html {
  height: 100%;
}

#map {
  background-image: url(https://image.freepik.com/free-vector/vector-illustration-mountain-landscape_1441-71.jpg);
  height: 1080px;
  width: 1080px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 1080px 1080px;
  position: relative;
  z-index: 0
}

#menu {
  display: grid;
  grid-template-columns:auto 1fr;
}

input:checked+.hidable,
input:not(:checked)+.showable {
  display: none;
}

.showable {
  position: absolute;
  top: 0px;
  left: 0px;
  z-index: -1;
}
<div id="map">
    <div id="menu">
      <input type="checkbox" /> Mascot 1 long text here
      <div class="showable"><img id="mascot1" src="https://banner2.cleanpng.com/20180510/fkq/kisspng-tiger-mascot-5af4168e2aa482.2537194215259459981747.jpg" alt="Map Locations"></div>
      <input type="checkbox" /> Mascot 2
      <div class="showable"><img id="mascot2" src="https://banner2.cleanpng.com/20180510/fkq/kisspng-tiger-mascot-5af4168e2aa482.2537194215259459981747.jpg" alt="Map Locations"></div>
      <input type="checkbox" /> Mascot 3
      <div class="showable"><img id="mascot3" src="https://banner2.cleanpng.com/20180510/fkq/kisspng-tiger-mascot-5af4168e2aa482.2537194215259459981747.jpg" alt="Map Locations"></div>
    </div>
  </div>

Связано с подробностями о mroe: Почему элемент со значением z-index не может покрыть своего дочернего элемента?

0 голосов
/ 30 мая 2020

Вы хотели, чтобы это было так?

body,
html {
  height: 100%;
}

#map {
  background-image: url(https://image.freepik.com/free-vector/vector-illustration-mountain-landscape_1441-71.jpg);
  height: 1080px;
  width: 1080px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 1080px 1080px;
  position: relative;
}

#menu {
  display: block;
  width: 100px;
}

input:checked+.hidable {
  display: none;
  position: absolute;
  z-index: 10;
}

input:not(:checked)+.showable {
  display: none;
  position: absolute;
  z-index: 10;
}
<div id="map">
  <div id="menu"><input type="checkbox" />Mascot 1
    <div class="showable"><img id="mascot1" src="https://banner2.cleanpng.com/20180510/fkq/kisspng-tiger-mascot-5af4168e2aa482.2537194215259459981747.jpg" alt="Map Locations"></div><input type="checkbox" />Mascot 2
    <div class="showable"><img id="mascot2" src="https://banner2.cleanpng.com/20180510/fkq/kisspng-tiger-mascot-5af4168e2aa482.2537194215259459981747.jpg" alt="Map Locations"></div><input type="checkbox" />Mascot 3
    <div class="showable"><img id="mascot3" src="https://banner2.cleanpng.com/20180510/fkq/kisspng-tiger-mascot-5af4168e2aa482.2537194215259459981747.jpg" alt="Map Locations"></div>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...