从无序列表创建下拉菜单,其中第一个项目单独显示

时间:2015-01-12 20:07:43

标签: html css navigationbar

我只能更改CSS,而不能更改HTML。使用Javascript或Bootstrap解决不是一种选择。鉴于此约束,是否可以从无序列表创建下拉样式导航菜单,其中一个列表项与该组的其余部分分开?

我目前拥有的是一个如下所示的下拉菜单:

enter image description here

我希望能够仅使用CSS来修改导航栏以分隔登录链接。它看起来像这样:

enter image description here

以下是我正在处理的代码段:



.menu-bar {
    background: black;
    padding: 10px;
}
.dropdown {
    position: relative;
    display: inline-block;
}
.dropdown button {
    background: #FF6223;
    color: #FFFFFF;
    border: none;
    margin: 0;
    padding: 0.4em 0.8em;
    font-size: 1em;
}
.dropdown .dropdown-menu {
    position: absolute;
    top: 100%;
    display: none;
    margin: 0;
    list-style: none; 
    width: 100%;
    padding: 0;
}
.dropdown:hover .dropdown-menu {
    display: block;
}
.dropdown a {
    display: block;
    padding: 0.2em 0.8em;
    text-decoration: none;
    background: #CCCCCC;
    color: #333333;
}
.dropdown a:hover {
    background: #BBBBBB;
}

<div class="menu-bar">
    <div class="dropdown">
        <button>Navigate</button>
        <ul class="dropdown-menu">
            <li><a href="#login">Login</a></li>
            <li><a href="#home">Home</a></li>
            <li><a href="#about">About</a></li>
            <li><a href="#contact">Contact</a></li>
        </ul>
    </div>
</div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

试试这个。

.menu-bar {
    background: black;
    padding: 10px;
}
.dropdown {
    position: relative;
    display: inline-block;
}
.dropdown button {
    background: #FF6223;
    color: #FFFFFF;
    border: none;
    margin: 0;
    padding: 0.4em 0.8em;
    font-size: 1em;
}
.dropdown .dropdown-menu {
    position: absolute;
    top: 100%;
    display: block;
    margin: 0;
    list-style: none; 
    width: 100%;
    padding: 0;
}
.dropdown:hover .dropdown-menu li:not(:first-child) a {
    position: static;
}
.dropdown a {
    display: block;
    padding: 0.2em 0.8em;
    text-decoration: none;
    background: #CCCCCC;
    color: #333333;
    position: absolute;
    top: -9999px;
}
.dropdown a:hover {
    background: #BBBBBB;
}

.dropdown .dropdown-menu li:first-child {
    bottom: 100%;
    left: 100%;
    position: absolute;
    padding-left: 5px;
}

.dropdown .dropdown-menu li:first-child a {
    position: static;
    background: #fff;
    padding: 0.4em 0.8em;
    font-size: 1em;
}

答案 1 :(得分:1)

这可能是一个解决方案。

HERE完整的小提琴。

    .dropdown .dropdown-menu {
    position: absolute;
    top: 100%;
    /*display:none;*/
    margin: 0;
    list-style: none; 
    width: 100%;
    padding: 0;
}

.dropdown .dropdown-menu li{
    display:none;
}
.dropdown:hover .dropdown-menu li{
    display:block;
}

.dropdown:hover .dropdown-menu li:first-child:hover ~ li{
    display:none;
}


.dropdown a {
    display: block;
    padding: 0.2em 0.8em;
    text-decoration: none;
    background: #CCCCCC;
    color: #333333;
}
.dropdown a:hover {
    background: #BBBBBB;
}

.dropdown ul.dropdown-menu li:first-child{
    display:block !important;
    position: absolute;
    left: 120px;
    top: -27px;
    z-index: 2;
    background: white;   

 }

答案 2 :(得分:-1)

&#13;
&#13;
.menu-bar {
    background: black;
    padding: 10px;
}
.dropdown {
    position: relative;
    display: inline-block;
}
.dropdown button, .loginBtn {
    background: #FF6223;
    color: #FFFFFF;
    border: none;
    margin: 0;
    padding: 0.4em 0.8em;
    font-size: 1em;
}
.dropdown .dropdown-menu {
    position: absolute;
    top: 100%;
    display: none;
    margin: 0;
    list-style: none; 
    width: 100%;
    padding: 0;
}
.dropdown:hover .dropdown-menu {
    display: block;
}
.dropdown a {
    display: block;
    padding: 0.2em 0.8em;
    text-decoration: none;
    background: #CCCCCC;
    color: #333333;
}
.dropdown a:hover {
    background: #BBBBBB;
}
&#13;
<div class="menu-bar">
    <div class="dropdown">
        <button>Navigate</button>
        <ul class="dropdown-menu">                
            <li><a href="#home">Home</a></li>
            <li><a href="#about">About</a></li>
            <li><a href="#contact">Contact</a></li>
        </ul>
        
    </div>
    <div class="dropdown"> 
       <a class="loginBtn" href="#login">Login</a>
    </div>
</div>
&#13;
&#13;
&#13;