下拉子列表表现得很奇怪

时间:2014-09-17 17:00:26

标签: html css

我有一个问题,我的孩子不会采取行动,因为他们应该基于我在其他地方看到的。 我按照足够多的线程创建了这个问题,我已经调试了3天以上,我无法指出问题所在。 图像很好地解释了这个问题:

http://i.imgur.com/89taMII.jpg

<nav id="main-nav" class="main-nav">
               <ul>
                    <li><a href="#">Home</a></li>
                    <li><a href="#">Dropdown &darr; </a>
                         <ul id="sublist">
                              <li><a href="#">Tomorrow</a></li>
                              <li><a href="#">Doomoro</a></li>
                         </ul>
                    </li>
                    <li><a href="#">Contact</a></li>
                    <li><a href="#">About</a></li>
               </ul>
          </nav>

的CSS:

nav ul li a {
font-family:'Cookie', cursive;
background-color:#400000 ;

border-radius: 0.5em;
color:#fff;
display:block;
line-height:3em;
text-align:center;
text-decoration:none;
width:100%;
}

nav ul li a:hover {
    background-color:#680000 ;
    color:white;
}

nav ul li ul {
    display: none;
    position: absolute;
    top: 48px;

}

nav ul li:hover ul {
  display: block;
  position: absolute;
  opacity: 1;

}
nav ul li:hover li {
    float: none;
}

#sublist li a {
    font-family:'Cookie', cursive;
    background-color:#400000 ;

    border-radius: 0.3em;
    color:#fff;
    display:block;
    line-height:3em;
    text-align:center;
    text-decoration:none;
    width:100%;
}

澄清:'a'元素是较小的元素。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

请试试jsFiddle。我已经添加了一些CSS缺少的东西。 HTML保持不变,这是新的CSS代码:

#main-nav ul li {
    display: inline-block;
}
ul#sublist li {
    display: block;
}
ul#sublist {
    padding-left: 6px;
    top: 84px;
}
nav ul li a {
    font-family:'Cookie', cursive;
    background-color:#400000;
    padding: 10px;
    border-radius: 0.5em;
    color:#fff;
    display:block;
    line-height:3em;
    text-align:center;
    text-decoration:none;
    width:100%;
}
nav ul li a:hover {
    background-color:#680000;
    color:white;
}
nav ul li ul {
    display: none;
    position: absolute;
    top: 48px;
}
nav ul li:hover ul {
    display: block;
    position: absolute;
    opacity: 1;
}
nav ul li:hover li {
    float: none;
}
#sublist li a {
    font-family:'Cookie', cursive;
    background-color:#400000;
    border-radius: 0.3em;
    color:#fff;
    display:block;
    line-height:3em;
    text-align:center;
    text-decoration:none;
    width:100%;
}

答案 1 :(得分:0)

确保使用CSS box-sizing重置样式并删除填充和边距,然后在ul ul element上设置左侧位置

*{box-sizing:border-box;padding:0; margin:0}

DEMO

*{box-sizing:border-box;padding:0; margin:0}
nav{position:relative;}
nav ul{max-width:480px;margin:40px auto}
nav li{list-style:none; float:left;position:relative}
nav ul li a {
font-family:'Cookie', cursive;
background-color:#400000 ;
border-radius: 0.5em;
color:#fff;
display:block;
line-height:3em;
text-align:center;
text-decoration:none;
padding:6px 12px;
}

nav ul li a:hover {
    background-color:#680000 ;
    color:white;
}

nav ul ul {
    display: none;
    position: absolute;
    top: 20px;
    left:0
}

nav ul li:hover ul {
  display: block;
  position: absolute;
  opacity: 1;

}
nav ul li:hover li {
    float: none;
}

#sublist li a {
    font-family:'Cookie', cursive;
    background-color:#400000 ;

    border-radius: 0.3em;
    color:#fff;
    display:block;
    line-height:3em;
    text-align:center;
    text-decoration:none;
    width:100%;
}