首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下拉菜单隐藏在我的英雄后面img

下拉菜单隐藏在我的英雄后面img
EN

Stack Overflow用户
提问于 2020-05-01 23:01:50
回答 1查看 597关注 0票数 0

我有一个英雄形象的问题,它总是隐藏我的下拉菜单,即使我在菜单上设置了更高的z索引。我已经找到了一个“解决方案”,我给了英雄图像z-index:-1,但是现在我在英雄图像上的按钮不工作了。我想让这个工作没有任何变通。

jsfiddle这里(这里的下拉列表有效,因为#hero-img有z-index:-1,但是顶部的按钮不起作用)

https://jsfiddle.net/xLo7wcph/1/

1)请帮我找出z-index >0不起作用的原因+解决方案,不使用z-index:0;

2)奖励问题,为什么当我将英雄img设置为负z-index时,按钮不起作用,尽管我有btn z-index : 1;

代码语言:javascript
复制
   <nav id="navbar" class="flex">
            <div class="flex-1 "><img src="images/drevo2.svg"></div>
            <div class="flex-2 "><a href="index.html">falco's woodwork.</a></div>
            <div class="flex-3 flex-element push">
                <a href="index.html">domů</a>
            </div>
            <div class="flex-4 flex-element">
                <a href="#categories">nabídka</a>
                <div class="dropdown">
                    <a href="#categories"><p>motýlci</p></a>
                    <a href="#categories"><p>dekorace</p></a>
                    <a href="#categories"><p>ostatní</p></a>
                </div>
            </div>     
            <div class="flex-5 flex-element">
                <a href="#contact">kontakt</a>
            </div>   
            <div class="flex-6 flex-element">
                <a href="https://www.seznam.cz/">nákup</a>
            </div>  
        </nav>

        <div id="hero-img">
            <div class="text-box">
                <h1>
                    <span class="text-box--main">objevte krásu</span>
                    <br>
                    <span class="text-box--sub">ručně tvořených výrobků</span>
                    <br>

                </h1> 
            </div>
            <button class="btn"><a href="#about-us"><img src="images/SIPKA DOLU.svg"></a></button>   
        </div>




#navbar{
    border-bottom:solid 1px black;

    .dropdown{
        position:absolute;
        z-index: 3;
        display:none;
        border-top:none;
        padding:1rem 2rem;
        background-color: rgba(0, 0, 0, 0.801);
        left:-1.8rem;
        top:3.7rem;

        p{
            color:white;

            &:hover{
                border-bottom: 1px solid white;
            }
        }
    }

    .flex-element:hover .dropdown{
        display:block;
        z-index: 2;
    }


}

#hero-img{
    position: relative;
    background:linear-gradient(to top, black 0%, rgba(0, 0, 0, 0.5) 0%), url("../images/hero image.jpg") no-repeat top;
    height: calc(100vh - 3.8rem);/* - vyska nav baru*/
    background-size: cover;
    z-index: -1;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-02 02:17:06

#hero-img中删除z-index: -1;并添加这些行可以解决您的问题。

代码语言:javascript
复制
#navbar{
  position: relative;
  z-index: 1;
}

最初发生的事情是,#hero-img上的position: relative隐藏了你的下拉列表。因为位置上的#hero-img#navbar高。这就是为什么您还应该在#navbar中添加z-index

并且您指定了负的z-index值以显示下拉列表。当您为一个元素赋予负z-index时,它将被呈现在其他元素下。

在这种情况下,#hero-img在身体下面。当你给出较高的z-index值时,这个按钮不会出现,因为它的父#hero-img在顶层下面。

工作演示:

代码语言:javascript
复制
btn,
.btn:link,
.btn:visited {
  background-color: rgba(255, 255, 255, 0);
  border-style: none;
  animation: btnFadeIn .5s ease-in  forwards;
  outline: none;
  position: absolute;
  bottom: 2%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3; }

.btn:hover {
  cursor: pointer; }

#navbar {
  border-bottom: solid 1px black; }
#navbar .dropdown {
  position: absolute;
  z-index: 3;
  display: none;
  border-top: none;
  padding: 1rem 2rem;
  background-color: rgba(0, 0, 0, 0.801);
  left: -1.8rem;
  top: 3.7rem; }
#navbar .dropdown p {
  color: white; }
#navbar .dropdown p:hover {
  border-bottom: 1px solid white; }
#navbar .flex-element:hover .dropdown {
  display: block;
  z-index: 2; }
#navbar .flex-1 {
  width: 3rem;
  height: 3rem;
  margin-left: .5rem;
  align-self: center;
  padding: .3rem;
  font-size: 2rem; }
#navbar .flex-2 {
  padding: .3rem;
  font-size: 2rem;
  margin-right: 5rem; }
#navbar .flex-2 a {
  text-decoration: none;
  color: black; }
#navbar .flex-element {
  padding: .3rem;
  font-size: 2rem;
  margin-right: 5rem;
  transition: all .2s ease-out;
  position: relative; }
#navbar .flex-element a {
  text-decoration: none;
  color: black; }
#navbar .flex-element:first-child {
  margin-right: 0; }
#navbar .flex-element:hover {
  transform: translateY(1.5px); }
#navbar .flex-element:active {
  transform: translateY(-1.5px); }

@font-face {
  font-family: 'Proxima Nova';
  src: url("../proxima_ssv/Proxima Nova Thin.otf") format("opentype"); }

*,
*::after,
*::before {
  margin: 0;
  padding: 0;
  box-sizing: inherit; }

html {
  font-size: 62.5%;
  scroll-behavior: smooth; }

body {
  font-family: 'Proxima Nova', sans-serif;
  line-height: 1.6;
  color: black;
  box-sizing: border-box; }

.push {
  margin-left: auto; }

.line {
  background-color: #C6C6C6;
  border: solid .1rem #C6C6C6;
  max-width: 960px; }

#navbar{
  position: relative;
  z-index: 1;
}

#hero-img {
  position: relative;
  /*background: linear-gradient(to top, black 0%, rgba(0, 0, 0, 0.5) 0%), url("../images/hero image.jpg") no-repeat top;*/
  background-color:darkgreen;
  height: calc(100vh - 3.8rem);
  /* - vyska nav baru*/
  background-size: cover;
  }

.text-box {
  position: absolute;
  top: 30%;
  left: 50%;
  transform: translate(-50%, 40%);
  backface-visibility: hidden;
  text-transform: uppercase;
  text-align: left; }
.text-box h1 {
  line-height: 1; }
.text-box--main {
  display: inline-block;
  font-size: 4rem;
  color: white;
  animation: moveInLeft 1.5s ease-out; }
.text-box--sub {
  display: inline-block;
  color: white;
  font-size: 6.5rem;
  animation: moveInRight 1.5s ease-out; }

.flex {
  display: flex;
  flex-wrap: wrap; }
代码语言:javascript
复制
<nav id="navbar" class="flex">
  <div class="flex-1 "></div>
  <div class="flex-2 "><a href="index.html">falco's woodwork.</a></div>
  <div class="flex-3 flex-element push">
    <a href="index.html">domů</a>
  </div>
  <div class="flex-4 flex-element">
    <a href="#categories">nabídka</a>
    <div class="dropdown">
      <a href="#categories"><p>motýlci</p></a>
      <a href="#categories"><p>dekorace</p></a>
      <a href="#categories"><p>ostatní</p></a>
    </div>
  </div>
  <div class="flex-5 flex-element">
    <a href="#contact">kontakt</a>
  </div>
  <div class="flex-6 flex-element">
    <a href="https://www.seznam.cz/">nákup</a>
  </div>
</nav>

<div id="hero-img">
  <div class="text-box">
    <h1>
      <span class="text-box--main">objevte krásu</span>
      <br>
      <span class="text-box--sub">ručně tvořených výrobků</span>
      <br>
    </h1>
  </div>
  <button class="btn"><a href="#about-us">theButtonThatDoesntWork</a></button>
</div>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61545007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档