伪类悬停在CSS中

时间:2013-11-10 15:01:11

标签: html css

试图了解CSS以及在元素上使用悬停psuedo类。每当我在导航栏中选择一个选项卡时,背景颜色会改变颜色(这就是我想要的)。但是,当我移开锚文本时,文本会变回白色。

理想情况下,我想要的是导航选项卡将背景颜色变为白色,并在鼠标悬停时将文本同时变为黑色。这是代码:

<head>
    <link rel="stylesheet" href="css.css" />
</head>

<body>
    <div id="container">
        <div id="title">
                <h1>Record Store</h1>

        </div>
        <div id="navigation">
            <ul class="navbar">
                <li><a href="#">Home</a>
                </li>
                <li><a href="#">Vinyl Stock</a>
                </li>
                <li><a href="#">Online Offers</a>
                </li>
                <li><a href="#">Collectors News</a>
                </li>
                <li><a href="#">Contact</a>
                </li>
            </ul>
        </div>
    </div>
</body>

和CSS代码:

* {
    border: 0;
    padding: 0;
    margin:0;
}
#container {
    margin: auto;
    width: 800px;
    border: 1px solid black;
    min-height: 600px;
    z-index: -9;
}
#title {
    margin:auto;
    /*border: 1px solid black;*/
    height: 30%;
}
#navigation {
    border-top: 1px solid black;
    border-bottom: 1px solid black;
    height: auto;
    overflow: auto;
}
.navbar {
}
.navbar ul {
}
.navbar li {
    font: bold 12px/1.2em Arial, Verdana, Helvetica;
    height: auto;
    list-style: none;
    text-align: center;
    width: 20%;
    float:left;
    background-color: blue;
    padding: 1% 0px;
}
.navbar a {
    border-right: 1px solid #1F5065;
    color: white;
    display: block;
    text-decoration: none;
}
.navbar a:hover {
    color: black;
}
.navbar li:hover {
    background-color: white;
}

有人可以看看并指出我出错的地方吗?

1 个答案:

答案 0 :(得分:2)

您必须更加认真地定义您的选择器。当有人将鼠标悬停在li上时,当你将鼠标悬停在a上时,你会做一件事。你想要的是在将鼠标悬停在公共元素上时更改这两个元素。

要解决此问题,请删除:

.navbar a:hover {
    color: black;
}

并将其替换为:

.navbar li:hover a {
    color: black;
}

jsFiddle

第一个选择器在a:hover中显示“获取所有.navbar个孩子”,第二个选择器在a中显示“获取所有li:hover个孩子”那是.navbar.

的孩子