<a> tags</a>上的nth-child()伪类

时间:2013-07-12 15:40:19

标签: html css css-selectors

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

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);
 }

2 个答案:

答案 0 :(得分:3)

您需要将第n个孩子应用于<li>而不是<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;
}

答案 1 :(得分:1)

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

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