1

我一直在为我的网站创建一个新的标题设计,除了一个问题外,所有问题都得到了解决。出于某种原因,当我尝试在类上使用nth-child(1)or时first-child,它会将规则应用于所有链接,而不是选定的元素。我将在下面发布一些带有 jsfiddle 的代码来证明我的观点。last-childnavLink

http://jsfiddle.net/rg7fe/

HTML

<ul id="nav">
    <li class="navItem"><a class="navLink" href="#">Test</a></li>
</ul>

CSS

#nav {
    background: RGB(200, 230, 240);
    border-bottom: 1px solid RGB(0, 0, 0);
    height: 30px;
    margin: 0 auto;
    position: relative;
    width: 980px;
    z-index: 5;
}

.navItem {
    display: block;
    float: left;
    position: relative;
 }

.navLink:first-child {
    border-left: 1px solid RGB(0, 0, 0);
}

.navLink {
    border-bottom: 1px solid RGB(0, 0, 0);
    border-right: 1px solid RGB(0, 0, 0);
    display: inline-block;
    height: 30px;
    line-height: 30px;
    padding: 0 15px;
    white-space: nowrap;
}

.navItem:hover .navLink {
    background: RGB(120, 200, 250);
    color: RGB(255, 255, 255);
 }
4

2 回答 2

3

您需要将 nth-child 应用于 <li>not<a>中的第一个、最后一个和第一个孩子<li>

.navItem:first-child a{
    border-left: 1px solid RGB(0, 0, 0);
}

.navItem a{
    border-bottom: 1px solid RGB(0, 0, 0);
    border-right: 1px solid RGB(0, 0, 0);
    display: inline-block;
    height: 30px;
    line-height: 30px;
    padding: 0 15px;
    white-space: nowrap;
}
于 2013-07-12T15:45:19.250 回答
1
.navItem:first-child .navLink {
    border-left: 1px solid RGB(0, 0, 0);
}

用它。您的方法的问题是 .navLink:first-child 正在计算相对于所有项目的 .navItems 的第一个孩子。希望你明白了。

于 2013-07-12T15:50:14.077 回答