【问题标题】:Having trouble with CSS drop down menuCSS下拉菜单有问题
【发布时间】:2013-06-04 03:01:35
【问题描述】:

在尝试解决此问题时遇到了很大的麻烦,我正在尝试创建一个下拉菜单,但它没有正确显示它不仅列出项目的位置关闭(它们以某种方式显示在“联系”部分而不是投资组合),当悬停时我只能从菜单中看到一个项目(最后一个项目:网站设计)。这是我到目前为止编写的代码,我不确定要修复什么(尝试了很多次但失败了)。所以请看一下,如果我错过了什么或在某些方面犯了错误,请告诉我。

提前致谢!

HTML 代码:

     <div class="nav2">
<ul class="special">
    <li><a href="#">Home</a>
    </li>
    <li><a href="#">About</a>
    </li>
    <li><a href="#">Portfolio</a>

        <ul class="special">
            <li><a href="#">Cinematography</a>
            </li>
            <li><a href="#">Sound Design</a>
            </li>
            <li><a href="#">Photoshop Design</a>
            </li>
            <li><a href="#">Website Design</a>
            </li>
        </ul>
    </li>
    <li><a href="#">Services</a>
    </li>
    <li><a href="#">Contact</a>
    </li>
</ul>

CSS 代码:

      .nav2 {
    height: 30px;
    background-color: #333333;
    color: #DBDBDB;
    font-family: Arial, Helvetica, sans-serif;
    text-align: center;
    padding-top: 5px;
    font-size: 14px;
    padding-bottom: 5px;
    list-style: none;
}
ul.special {
    font-family: Arial, Verdana;
    font-size: 14px;
    margin: 0;
    padding: 0px 0px 0px 300px;
    list-style: none;
}
ul.special li {
    display: block;
    position: inherit;
    float: left;
}
li ul.special {
    display: none;
}
ul.special li a {
    display: block;
    text-decoration: none;
    color: #ffffff;
    border-top: 1px solid #ffffff;
    padding: 5px 15px 5px 15px;
    background: #333333;
    margin-left: 1px;
    white-space: nowrap;
}
ul.special li a:hover {
    background: #333333;
}
li:hover ul.special {
    display: block;
    position: fixed;
}
li:hover li {
    float: none;
    font-size: 11px;
}
li:hover a {
    background: #3b3b3b;
}
li:hover li a:hover {
    background: #1e7c9a;
}

【问题讨论】:

  • 请将您的代码放入jsFiddle
  • 我做了,可悲的是根本不显示下拉菜单..
  • 你的问题是属性使用不当-位置:

标签: html css drop-down-menu menu


【解决方案1】:

解决方法如下: Demo

 .nav2 {
     height: 30px;
     background-color: #333333;
     color: #DBDBDB;
     font-family: Arial, Helvetica, sans-serif;
     text-align: center;
     padding-top: 5px;
     font-size: 14px;
     padding-bottom: 5px;
     list-style: none;
 }
 ul.special {
     font-family: Arial, Verdana;
     font-size: 14px;
     margin: 0;
     padding:0;
     list-style: none;
    text-align:center;
 }
 ul.special > li ul {
     position: absolute;
    text-align:left;
 }
ul.special > li ul li{
    display:block;
}
 ul.special li {
     display: block;
     position: relative;
     display:inline-block;
 }
 li ul.special {
     display: none;
 }
 ul.special li a {
     display: block;
     text-decoration: none;
     color: #ffffff;
     border-top: 1px solid #ffffff;
     padding: 5px 15px 5px 15px;
     background: #333333;
     margin-left: 1px;
     white-space: nowrap;
 }
 ul.special li a:hover {
     background: #333333;
 }
 li:hover ul.special {
     display: block;
 }
 li:hover li {
     float: none;
     font-size: 11px;
 }
 li:hover a {
     background: #3b3b3b;
 }
 li:hover li a:hover {
     background: #1e7c9a;
 }

变化:

已编辑:

 ul.special {
    text-align:center;
 }

添加:

 ul.special > li ul {
     position: absolute;
    text-align:left;
 }
ul.special > li ul li{
    display:block;
}

【讨论】:

  • 注意注明您为 OP 所做的更改?
  • 非常感谢!我看到了我应该添加的内容!真的很感激!
【解决方案2】:

只需在css中添加两行:

 li:hover ul.special {
           display: block;
           position: fixed;
           padding: 0px;  /* first one */
 }
 li:hover li{
           float: none;
           font-size: 11px;
           position:relative; /* second */
 }

【讨论】:

  • 啊我现在明白了。非常感谢!
【解决方案3】:

您至少可以使用CSS

试试这个:

<div class="nav">
    <ul>
        <li><a href="#">Home</a></li>  
        <li><a href="#">About</a></li>  
        <li><a href="#">Portfolio</a>
            <ul>
                <li><a href="#">Cinematography</a></li>
                <li><a href="#">Sound Design</a></li>
                <li><a href="#">Photoshop Design</a></li> 
                <li><a href="#">Website Design</a></li> 
            </ul>
        </li>
        <li><a href="#">Services</a></li>  
        <li><a href="#">Contact</a></li>
    </ul>
</div>

CSS:

.nav {
   background: #333333;
   text-align: center;    
}

.nav ul ul {
    display: none;
}

.nav ul li:hover > ul {
    display: block;
}

.nav ul {
    padding: 0 20px;
    list-style: none;
    position: relative;
    display: inline-table;
    font-family: Arial, Verdana;
    font-size: 14px;
}

.nav ul li {
    float: left;
    margin: 0 3px 0 0;
}

.nav ul li a {
    display: block; 
    padding: 5px 20px;
    color: #fff; 
    text-decoration: none;
    border-top: 1px solid #ffffff;
    padding: 5px 15px 5px 15px;
    background: #333333;
}

.nav ul ul {
    padding: 0;
    position: absolute; 
    top: 100%;
}

.nav ul ul li {
    float: none; 
    position: relative;
}

 li:hover li a:hover {
     background: #1e7c9a;
 }

我从 ul 中删除了该类,并在主 div 中添加了一个类。

这是有效的fiddle

【讨论】:

    猜你喜欢
    • 2011-03-22
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多