在CSS下拉列表中排列元素

时间:2013-08-03 21:46:39

标签: css

如何使用点击器排列我的下拉元素?

这是我的CSS代码

#header_dropdown {
    float: right;
}
.click-nav {
    width: 200px;
}
.click-nav ul {
    position: relative;
}
.click-nav ul li {
    position: relative;
    list-style: none;
    cursor: pointer;
}
.click-nav ul li ul {
    position: absolute;
}
.click-nav ul .clicker {
    position: relative;
    background: #2284B5;
    color: #FFF;
}
.click-nav ul .clicker:hover, .click-nav ul .active {
    background: #196F9A;
}
.click-nav ul li a {
    transition: background-color 0.2s ease-in-out;
    -webkit-transition: background-color 0.2s ease-in-out;
    -moz-transition: background-color 0.2s ease-in-out;
    display: block;
    background: #FFF;
    color: #333;
    text-decoration: none;
}
.click-nav ul li a:hover {
    background: #F2F2F2;
}
/* Fallbacks */
 .click-nav .no-js ul {
    display: none;
}
.click-nav .no-js:hover ul {
    display: block;
}

Jsfiddle在http://jsfiddle.net/KVrFM/

1 个答案:

答案 0 :(得分:1)

您需要从子菜单ul中删除填充。

http://jsfiddle.net/KVrFM/1/

我修改了您的匿名函数,使用jQuery li将活动类添加到parent()而不是锚标记。

$('.clicker').parent().toggleClass('active');

然后我添加了以下CSS规则。在CSS中执行下拉菜单和弹出菜单时,使用子组合器>会很有帮助。拥有.click-nav ul之类的规则会将{strong>所有 ul定位为.click-nav的后代。将该规则更改为.click-nav > ul只会定位ul 孙子等的.click-nav

.active ul {
     padding: 0;
}