CSS列表菜单不会改变背景颜色

问题描述 投票:0回答:3

我正在尝试从列表和:hover事件改变背景颜色创建菜单。菜单中能够下拉的项目有class .dropdown,我无法让它们在悬停事件中更改背景颜色。

这是我的HTML代码:

<nav id="menubar">
    <ul id="menu">
        <li class="dropdown"><a href="#">Company</a></li>
        <li class="selected dropdown"><a href="#">Products</a></li>
        <li class="dropdown"><a href="#">News</a></li>
        <li class="dropdown"><a href="#">Downloads</a></li>
        <li><a href="#">Contact</a></li>
    </ul>
</nav>

这是我制作的CSS:

// no dropdown items
#menubar #menu li a {
    text-decoration: none;
    padding: 1.2em 1.6em 1.2em 1.6em;
    color: grey;
    border-radius: 8px;
    border: 1px solid white;
}
#menubar #menu li a:hover {
    color: white;
    background-color: #36C7E3;
}
// dropdown items
#menubar #menu .dropdown a {
    background:url('http://www.portalworkbook.com.br/static/admin/img/select-caret.png') no-repeat right 25px;
}
#menubar #menu .dropdown a:hover {
    background-color: #36C7E3;
    background:url('https://doc.owncloud.org/server/8.0/developer_manual/_images/caret-dark.png') no-repeat right 25px;
}

这是我的问题FIDDLE

有什么解决方案吗?

html css html5
3个回答
1
投票

因为background财产凌驾于background-color 只需在背景网址之前添加颜色,如下所示:background: #36C7E3 url('https://doc.owncloud.org/server/8.0/developer_manual/_images/caret-dark.png') no-repeat right 25px;

检查demo


1
投票

您只需要为每个属性设置完整的属性名称:

#menubar #menu li.dropdown a:hover {
    background-color: #36C7E3;
    background-image:url('https://doc.owncloud.org/server/8.0/developer_manual/_images/caret-dark.png') no-repeat right 25px;
}

或者,您可以使用背景速记并在一行中指定它们:

background: #36C7E3 url('https://doc.owncloud.org/server/8.0/developer_manual/_images/caret-dark.png') no-repeat right 25px;

0
投票

你添加背景图片尝试删除它然后它将工作:

#menubar #menu .dropdown a:hover {
    background-color: red;
}

如果要同时使用图像和颜色添加背景

background-image:url('');

© www.soinside.com 2019 - 2024. All rights reserved.