CSS 下拉菜单水平下降

CSS Dropdown Menu dropping horizontally

我在几年前由我的雇主建立的网站上工作,我正在尝试仅使用 CSS 实现下拉菜单。但是,当您将鼠标悬停在它上面时,它不会下降 向下 ,而是水平下降 ,如下所示:

它也丢失了父列表的所有格式,尽管我怀疑父列表中的某些内容 CSS 正在覆盖我正在尝试做的事情。

我是什么missing/overwriting?

HTML

    <div id="main_nav_container"> 
  <ul id="main_nav_list">
        <li><a class="main_nav_item" href="index.html">Home</a></li>
        <li><a class="main_nav_item" href="history.html">History</a></li>
        <li><a class="main_nav_item" href="products.html">Products</a>
            <ul>
                <li><a href="#">Item 1</a></li>
                <li><a href="#">Item 2</a></li>
                <li><a href="#">Item 3</a></li>
                <li><a href="#">Item 4</a></li>
                <li><a href="#">Item 5</a></li>
            </ul>
        <li><a class="main_nav_item" href="news.html">News</a></li>
        <li><a class="main_nav_item" href="links.html">Links</a></li>
        <li><a class="main_nav_item" href="contact.html">Contact</a></li>
    <ul>
</div>

CSS

#main_nav_list a.main_nav_active_item {
 background: url(images/dynamic/buttonset1/n1activeitem.gif) no-repeat;
 font-family: Arial,sans-serif;
 font-style: normal;
 font-size: 11px;
 font-weight: bold;
 text-decoration: none;
 color: #fff7de;
  }
#main_nav_list a.main_nav_item {
 background: url(images/dynamic/buttonset1/n1.gif) no-repeat;
 font-family: Arial,sans-serif;
 font-style: normal;
 font-size: 11px;
 font-weight: bold;
 text-decoration: none;
 color: #fff7de;
  }
#main_nav_list a.main_nav_item:hover {
 background: url(images/dynamic/buttonset1/n1hover.gif) no-repeat;
 font-family: Arial,sans-serif;
 font-style: normal;
 font-size: 11px;
 font-weight: bold;
 text-decoration: none;
 color: #fff7de;
  }

ul ul{
 display: none;
 list-style: none;
 float: left;
  }
ul> li > ul:hover {
 position: absolute;
 display: block;
  }

https://jsfiddle.net/66esagLq/

您的 html 中似乎缺少 </li>:

 <div id="main_nav_container"> 
  <ul id="main_nav_list">
        <li><a class="main_nav_item" href="index.html">Home</a></li>
        <li><a class="main_nav_item" href="history.html">History</a></li>
        <li><a class="main_nav_item" href="products.html">Products</a>
            <ul>
                <li><a href="#">Item 1</a></li>
                <li><a href="#">Item 2</a></li>
                <li><a href="#">Item 3</a></li>
                <li><a href="#">Item 4</a></li>
                <li><a href="#">Item 5</a></li>
            </ul>
        </li> <!-- here -->
        <li><a class="main_nav_item" href="news.html">News</a></li>
        <li><a class="main_nav_item" href="links.html">Links</a></li>
        <li><a class="main_nav_item" href="contact.html">Contact</a></li>
    <ul>
</div>

此外:

ul> li:hover > ul {
     position: absolute;
     display: block;
}

我想确保它有效,所以我在这里对 fiddle 做了一个小改动:

https://jsfiddle.net/66esagLq/1/

添加这些 CSS 规则:

ul li {
    list-style-type: none;
    display: inline-block;
}
ul ul li {
    display: block;
}