如何停止下拉菜单成为导航栏的一部分?

时间:2019-07-16 04:09:34

标签: html css

我正在尝试创建一个带有下拉菜单的网站,但它会随着导航栏的扩展而扩展。

我尝试更改display的类型和位置,但是没有用

结果为here

body {
  margin: 0px;
  font-family: arial;
  background-color: rgb(240, 240, 240);
}

li {
  list-style: none;
}

/*NAV BAR*/

.navbar {
  background-color: white;
  display: block;
  justify-content: center;
  min-width: 1000px;
  border-bottom: 1px solid rgb(220, 220, 220);
}

.navbaritems {
  display: flex;
  justify-content: center;
  flex-direction: row;
  margin: 0px;
  padding: 0px;
}

.navbaritem {
  padding: 15px;
}

.navbaritem .text {
  text-decoration: none;
  font-size: 20px;
  color: rgb(10, 80, 150);
}

.navimg {
  justify-content: center;
  padding-top: 30px;
  zoom: 18%;
}

.dropdown {
  display: none;
}

.navbaritem:hover {
  background-image: linear-gradient(to top, rgba(90, 140, 220, 1), rgba(110, 150, 250, 0.2));
}

.navbaritem:hover .text {
  color: white;
}

.navbaritem:hover .dropdown {
  display: block;
  position: relative;
  ;
}
<div class="navbar-container">
  <nav class="navbar">
    <ul class="navbaritems">
      <li class="navbaritem"><a class="text" href="index.html">Home</a></li>
      <li class="navbaritem"><a class="text" href="about.html">About</a>
        <div class="">
          <ul class="dropdown">
            <li class="droption"><a class="text" href="">About</a></li>
            <li class="droption">
              <a class="text" href=""></a>
            </li>
          </ul>
        </div>
      </li>
    </ul>
  </nav>
</div>

1 个答案:

答案 0 :(得分:2)

以下这些更改只是解决方案中的粗略尝试,只是为了让您了解可能会有帮助的想法:

.navbaritem {padding: 15px; position: relative; }
.navbaritem:hover .dropdown {
  background-color: rgba(90,140,220,1);
  display: block;
  height: 40px;
  left: 0;
  padding-left: 15px;
  padding-top: 10px;
  position: absolute;
  top: 53px;
  width: 67.5px;
}

重要的是使用绝对定位,以使下拉元素在可见时所占据的大小不会影响父组件的大小。

其余的CSS只是临时尝试使一个下拉项看起来相当不错-但这并不意味着它是获取所需布局和样式的通用解决方案的一部分。

https://codepen.io/kshetline/pen/gNNNaN?editors=1100