html - 隐藏在内容后面的下拉菜单?

标签 html css drop-down-menu dropdown

所以我是新手,一直在尝试将我在网上找到的主题放在下拉菜单中。我已经让它工作了大部分,但是,下拉菜单隐藏在主要内容后面。我知道这是问题所在,因为当我调整“.menu ul #listcontain”的顶部填充时它会起作用,但它会将照片移动到我不想要的地方。我觉得我已经尝试了所有方法(调整 z-indexes、位置等),但仍然无法弄清楚。我一个月前才开始做这个,有人能帮帮我吗?非常感谢。

那么对于 CSS,我有这个(只是菜单。这是一个大页面,所以我试图只包括我需要的部分):

*{padding:0; margin:0;}
body{ font-family:Arial, Helvetica, sans-serif; font-size:12px;      color:#1491c1; background:url(../images/bg.jpg) repeat;}
img{border:none;}
h1{ font-family: 'Droid Serif', serif; font-weight:normal; color:#fff;}
h2{ font-family: 'Droid Serif', serif; font-weight:normal; color:#fff; font-   size:18px;}
P{ line-height:20px;}
a{text-decoration:none; color:#1491c1;}
a:hover{color:#fff;}

/*-------------------------------------------------
GENERAL CLASSES
-------------------------------------------------*/
.mar-top{ margin-top:40px;}
.mar-top30{ margin-top:30px;}
.mar-bottom{ margin-bottom:40px;}
.mar-Right{ margin-right:40px;}
.mar-right115{ margin-right:115px;}
.float-left{ float:left;}
.float-right{ float:right;}
.clearing { clear:both;}
.bor-bottm-non{border-bottom:none!important;}
.panel{}
.title{}
.content{}
.wrap{width:960px; margin:0 auto;overflow:hidden; background:url(../images/page-bg.jpg);}
.page{ width:580px; margin:0 auto;overflow:hidden; padding-bottom:50px;}
.page-content{ width:580px; margin:0 auto;overflow:hidden; padding-  bottom:30px; padding-top:30px;}
.block{padding:20px 20px 20px 20px; margin:0 auto;}
.block2{padding:20px 20px 20px 20px; margin:0 auto;}
.button a{text-decoration:none; display:block; width:70px; height:30px;  background:#1491c1; color:#ffffff; font-family:Arial, Helvetica, sans-serif;  line-height:30px; text-align:center;}
.button a:hover{ background:#0e5295;}

/*------------------------------------------------- 
CONTENT CLASSES
-------------------------------------------------*/
.page-content{ width:580px; margin:0 auto;overflow:hidden; padding-  bottom:30px; padding-top:30px;}
.page-content .content h3{ padding-bottom:20px;font-family: 'Droid Serif',   serif; font-weight:normal; color:#fff; font-size:16px;}
.page-content .content p{ padding-bottom:15px;}

/*-------------------------------------------------  
HEADER CLASSES
-------------------------------------------------*/
.header-wrap{ background:#083266; height:162px; width: 960; }
.header{ width:1200px; margin:0 auto; z-index: 11;}
.logo{ float:left; background:#1491c1; width:300px;  }
.logo h1{font-size:25px; text-align:left; padding:40px 0px 36px 25px ; 
}

.menu ul #listcontain{ list-style:none; float: left; border-right:#093e76  solid 1px; padding: 0px 20px 30px 20px; }
.menu ul #listcontain a{ text-decoration:none; color:#80d2f8; font-  size:14px; text-align:center;padding-right: 5px;}
.menu ul #listcontain a:hover{ color:#1491c1;}
.menu ul #listcontain a.active{ color:#1491c1;}

* {
  box-sizing: border-box;
}

#main {
  position: relative;
  list-style: none;
  background: #083266;
  font-weight: 400;
  font-size: 0;
  text-transform: none;
  display: inline-block;
  padding: 118px 0px 0px 0px;
  margin: 0 auto;
}
#main li {
  color: #ffffff;
  font-size: 0.8rem;
  display: inline-block;
  position: relative;
  padding: 13px 20px;
  cursor: pointer;
  z-index: 5;
  min-width: 120px;
}

li {
  margin: 0;
}

#marker {
  height: 6px;
  background: #1491c1 !important;
  position: absolute;
  bottom: 0;
  width: 120px;
  z-index: 2;
  -webkit-transition: all 0.35s;
  -moz-transition: all 0.35s;
  -ms-transition: all 0.35s;
  transition: all 0.35s;
}

#main li:nth-child(1):hover ul div {
  -webkit-transform: translate(0, 0);
  -moz-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  transform: translate(0, 0);
}
#main li:nth-child(1):hover ~ #marker {
  -webkit-transform: translate(0px, 0);
  -moz-transform: translate(0px, 0);
  -ms-transform: translate(0px, 0);
  transform: translate(0px, 0);
}
#main li:nth-child(2):hover ul div {
  -webkit-transform: translate(0, 0);
  -moz-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  transform: translate(0, 0);
}
#main li:nth-child(2):hover ~ #marker {
  -webkit-transform: translate(130px, 0);
  -moz-transform: translate(130px, 0);
  -ms-transform: translate(130px, 0);
  transform: translate(133px, 0);
}
#main li:nth-child(3):hover ul div {
  -webkit-transform: translate(0, 0);
  -moz-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  transform: translate(0, 0);
}
#main li:nth-child(3):hover ~ #marker {
  -webkit-transform: translate(260px, 0);
  -moz-transform: translate(260px, 0);
  -ms-transform: translate(260px, 0);
  transform: translate(269px, 0);
}

#main li:nth-child(4):hover ul div {
  -webkit-transform: translate(0, 0);
  -moz-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  transform: translate(0, 0);
}
#main li:nth-child(4):hover ~ #marker {
  -webkit-transform: translate(360px, 0);
  -moz-transform: translate(380px, 0);
  -ms-transform: translate(360px, 0);
  transform: translate(397px, 0);
} 
#main li:nth-child(5):hover ul div {
  -webkit-transform: translate(0, 0);
  -moz-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  transform: translate(0, 0);
}
#main li:nth-child(5):hover ~ #marker {
  -webkit-transform: translate(360px, 0);
  -moz-transform: translate(380px, 0);
  -ms-transform: translate(360px, 0);
  transform: translate(529px, 0);
}

#drops {
  overflow: hidden;
  list-style: none;
  position: absolute;
  padding: 0;
  width: 100%;
  left: 0;
  top: 58px;

}
#drops div {
  -webkit-transform: translate(0, -100%);
  -moz-transform: translate(0, -100%);
  -ms-transform: translate(0, -100%);
  transform: translate(0, -100%);
  -webkit-transition: all 0.5s 0.1s;
  -moz-transition: all 0.5s 0.1s;
  -ms-transition: all 0.5s 0.1s;
  transition: all 0.5s 0.1s;
  position: relative;
}
#drops li {
  display: block;;
  padding: 0;
  width: 100%;
  background: #3E8760 !important;
  z-index: 10;
}
<link href='http://fonts.googleapis.com/css?family=Droid+Serif'   rel="stylesheet" type="text/css">

<nav>
  <div class="wrap">
    <div class="header">
      <div class="logo"><h1>JHT Market Development Team (MDT) Site</h1></div>
      <div class="menu" id="main">
        <ul>
          <li id="listcontain"><a href="index.html" class="active">Home</a></li>
          <li id="listcontain"><a href="about.html">MDT Resources </a>
            <ul class="drop" id="drops">
              <div>
                <li>MDT Calender</li>
                <li>MDT Agendas</li>
                <li>Meeting Materials</li>
              </div>
            </ul>
          <li id="listcontain"><a href="services.html">Proposals          </a></li>
          <li id="listcontain"><a href="solutions.html">  CSO Priorities  </a></li>
          <li id="listcontain"><a href="contact.html">Contact MDT</a></li>
          <div id="marker"></div>
        </ul>
      </div>
    </div>
  </div>
</nav>

我认为问题出在其中一个通用类中的某处,但我不知道如何在不搞砸整个页面的情况下解决它。

最佳答案

我猜测,由于菜单的 DOM 位于主体之前,因此绝对定位导致主要内容堆叠在顶部。

想象一下两个紧挨着的 div,第一个被赋予了绝对定位。第二个 div 将显示在第一个 div 之上,因为这正是 DOM 呈现的方式。

正如@will 在他的评论中所述,添加 z-index 可能是此处采用的最佳途径。

关于html - 隐藏在内容后面的下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38270222/

相关文章:

c# - ASP MVC 2 : Error with dropdownlist on POST

javascript - 设置轮播自动滑动

html - 无法删除导航栏中的默认 Bootstrap 填充

ios - 在 iOS 上抑制 HTML5 &lt;input type"number"> 的 "pink"验证

html - 如何使用 CSS 过渡

javascript - 过渡不起作用 CSS

css - 如何在通过 ajax 加载时覆盖 <tr> 的 CSS?

javascript - CSS 下拉菜单 : Add delay on mouse out

php - 如何使用 php 将日期插入到 mysql 查询中?

javascript - 如何使用react从下拉选择中获取值