简体   繁体   中英

Create vertical submenu for horizontal menu

I've spent more time trying to do this than I'm willing to admit. I just can't seem to figure this out. I'm trying to build something which I believe is very simple. I've got a horizontal menu. And I want to have the submenu be vertical when someone hovers over a given link.

This is what I've got right now at RetirePhoenixArizona.com :

HTML

<nav class="secondary-navigation">
    <div class="container">
        <ul id="secondary-menu">
                <li><a href="google.com">Link 1</a>
                        <ul class="secondary-submenu">
                            <li><a href="http://www.google.com">Sub Menu 1</a></li>
                            <li><a href="http://www.google.com">Sub Menu 2</a></li>
                        </ul>
                </li>
                <li><a href="facebook.com">Link 2</a></li>
                <li><a href="google.com">Link 3</a></li>
                <li><a href="facebook.com">Link 4</a></li>
        </ul>
    </div>
</nav>

CSS

#secondary-menu {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background-color: #333;
}

#secondary-menu li {
    float: left;
    width: 25%;
}

#secondary-menu li a {
    display: block;
    color: white;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
}

#secondary-menu li a:hover {
    background-color: #111;
}

#secondary-menu ul {
  display: none;
}

#secondary-menu li:hover > ul {
  position: relative;
  display: inline;
  width: 200px;
  height: 45px;
  position: absolute;
  margin: 40px 0 0 0;
}

#secondary-menu li:hover > ul li {
  float: none;
  width: 100%;
}

Remove the float on the li of the submenu

ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

li {
  float: left;
  width: 25%;
  position: relative;
}

a {
  display: block;
  background: #333;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

li a:hover {
  background-color: #111;
}

ul ul {
  display: none;
}

li:hover > ul {
  display: block;
  position: absolute;
  left: 0;
  top: 40px;
  right: 0;
}

li:hover > ul li {
  float: none;
  width: 100%;
}

我只是做一个响应式水平菜单... 在这里,如果您不需要响应,请删除所有关注的容器,bar1,bar2,bar3,图标,更改,@ media屏幕和(max-width:680px)和javascript

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM