CSS HTML下拉导航元素出现在行内而非下方

5
以下是我的一些代码的JSFiddle链接。我试图实现一个漂亮的纯html/css下拉菜单,不使用bootstrap或其他插件。然而,我似乎无法让“创意”下拉元素出现在导航栏下面,它们会以行内方式出现,我已经尝试更改代码的其他部分使其工作,但我似乎无法这样做,而不会损害其余的导航栏。
请如果有人能看一下,让它在你悬停在“创意”时,它的子列表元素出现在它下面。最好不要只设置填充和边距样式。

https://jsfiddle.net/nytnfvmq/

HTML:

<!DOCTYPE html>
<html lang="en">

  <head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Udemy Project</title>

    <link type="text/css" href="styles.css" rel="stylesheet">

    <script type="text/javascript" src="javascript.js"></script>
    <script type="text/javascript" src="jquery.min.js"></script>
    <!--<script type="text/javascript" src="jquery-ui.min.js"></script>
    <script type="text/javascript" src="js/bootstrap.min.js"></script>-->


  </head>

  <body>

    <nav>
      <ul>

        <li>
          <a href="">Home</a>
        </li>

        <li>
          <a href="">Development</a>
        </li>

        <li>
          <a href="">Creative</a>

          <ul>

            <li>
              <a href="">Film</a>
            </li>

            <li>
              <a href="">Design</a>
            </li>

            <li>
              <a href="">Music</a>
            </li>

          </ul>

        </li>

        <li>
          <a href="">Information</a>
        </li>

        <li>
          <a href="">Contact Me</a>
        </li>
      </ul>
    </nav>

    <div id="banner">
      <img src="images/banner.png" alt="Banner image did not load." ;>
    </div>

  </body>

</html>

CSS: * { 边距: 0; 填充: 0; }
body {
  margin: 0;
  padding: 0;
  font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue",     Helvetica, Arial, "Lucida Grande", sans-serif;
  font-weight: 300;
}

nav {
  width: 100%;
  height: 40px;
  margin: 0 auto;
  background-color: #ffffff;
  box-shadow: 0px 2px 5px #6E6E6E;
  position: fixed;
}

nav ul {
  width: 1200px;
  margin: 0 auto;
  position: relative;
  list-style: none;
  color: #00b6ed;
}

nav ul li a {
  width: 20%;
  display: inline;
  text-align: center;
  float: left;
  padding-top: 11px;
  padding-bottom: 11px;
  color: #00b6ed;
  text-decoration: none;
}

nav ul li a:hover {
  background-color: #00b6ed;
  color: #ffffff;
}

nav ul li ul {
  display: none;
  position: relative;
}

nav ul li:hover ul {
  display: block;
  position: relative;
}

#banner {
  width: 100%;
  height: 400px;
  background-color: #00b6ed;
  float: left;
  text-align: center;
}

#banner img {
  margin: 0 auto;
  background-color: #00b6ed;
}

nav ul li ul li a {
  background-color: red;
  color: green;
}
1个回答

2

您的做法有几个问题。请勿将浮动和宽度分配给锚标签,而是应该将列表项浮动。您还需要在li上添加position: relative,然后在子ul上添加position: absolute; left: 0; top: 100%;。我认为这样就可以了。

* {
  margin: 0;
  padding: 0;
}

body {
  margin: 0;
  padding: 0;
  font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
  font-weight: 300;
}

nav {
  width: 100%;
  height: 40px;
  margin: 0 auto;
  background-color: #ffffff;
  box-shadow: 0px 2px 5px #6E6E6E;
  position: fixed;
}

nav ul {
  width: 1200px;
  margin: 0 auto;
  position: relative;
  list-style: none;
  color: #00b6ed;
}

nav ul li {
  width: 20%;
  float: left;
  position: relative;
}

nav ul li a {
  display: block;
  text-align: center;
  padding-top: 11px;
  padding-bottom: 11px;
  color: #00b6ed;
  text-decoration: none;
}

nav ul li a:hover {
  background-color: #00b6ed;
  color: #ffffff;
}

nav ul li ul {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
}

nav ul li:hover ul {
  display: block;
  position: relative;
}

#banner {
  width: 100%;
  height: 400px;
  background-color: #00b6ed;
  float: left;
  text-align: center;
}

#banner img {
  margin: 0 auto;
  background-color: #00b6ed;
}

nav ul li ul li {
  float: none;
}

nav ul li ul li a {
  background-color: red;
  color: green;
}
<!DOCTYPE html>
<html lang="en">

  <head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Udemy Project</title>

    <link type="text/css" href="styles.css" rel="stylesheet">

    <script type="text/javascript" src="javascript.js"></script>
    <script type="text/javascript" src="jquery.min.js"></script>
    <!--<script type="text/javascript" src="jquery-ui.min.js"></script>
    <script type="text/javascript" src="js/bootstrap.min.js"></script>-->


  </head>

  <body>

    <nav>
      <ul>

        <li>
          <a href="">Home</a>
        </li>

        <li>
          <a href="">Development</a>
        </li>

        <li>
          <a href="">Creative</a>

          <ul>

            <li>
              <a href="">Film</a>
            </li>

            <li>
              <a href="">Design</a>
            </li>

            <li>
              <a href="">Music</a>
            </li>

          </ul>

        </li>

        <li>
          <a href="">Information</a>
        </li>

        <li>
          <a href="">Contact Me</a>
        </li>
      </ul>
    </nav>

    <div id="banner">
      <img src="images/banner.png" alt="Banner image did not load." ;>
    </div>

  </body>

</html>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接