:first-child 和 :last-child 适用于所有元素

Jho*_*orf 4 html css css-selectors

我在 :first-child 和 :last-child 选择器方面遇到了一个奇怪的问题。当我将其应用于子菜单链接时,它适用于所有子菜单链接。我只需要在子菜单中的第一个和最后一个链接上创建不同的效果。

这是 HTML:

<nav id="menu">
    <ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li>
            <a href="#">3</a>
            <ul>
                <li><a href="#">sub1</a></li>
                <li><a href="#">sub2</a></li>
                <li><a href="#">sub3</a></li>
                <li><a href="#">sub4</a></li>
            </ul>
        </li>
        <li><a href="#">4</a></li></li>
    </ul>
</nav>
Run Code Online (Sandbox Code Playgroud)

这是CSS:

nav#menu{ width:100%; text-align:center; z-index:999; }
nav#menu li{ display:inline-block; }
nav#menu li.voltar{ display:none; }
nav#menu a{ display:block; padding:0.75rem 1.3rem; font-size:0.7rem; }
nav#menu li:hover a{ background:#00afef; color:#fff; }
nav#menu li ul{ display:none; }
nav#menu li:hover ul{ display:block; position:absolute; width:12rem; }
nav#menu li ul li{ display:block; }
nav#menu li ul li a{ border-bottom:#0098df solid 1px; }
nav#menu li ul li:hover a{ background:#0064ba; }
Run Code Online (Sandbox Code Playgroud)

我试过

nav#menu li ul li a:first-child{ color:red; }
nav#menu li ul li a:last-child{ color:blue; }
Run Code Online (Sandbox Code Playgroud)

但这适用于所有人。=/

Ali*_*ani 5

a没有孩子,li有,所以在那里应用它。

记住什么:last-child

:last-child 选择器允许您将最后一个元素直接定位到其包含元素内。

a在你的情况下不是包含元素。

所以nav#menu li ul li:first-child a { color:red; }更有意义。

http://jsfiddle.net/4Lefkxog/

在此输入图像描述