使用:带有类选择器的last-child

Zna*_*kus 34 css css3

我想要最后/秒的风格.heading.

<ul>
    <li class="heading">Hello world</li>
    <li>Hello world</li>
    <li>Hello world</li>
    <li class="heading">Hello world</li>
    <li>Hello world</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

也不

ul li.heading:last-child {
    background: black;
}
Run Code Online (Sandbox Code Playgroud)

也不

ul li.heading:nth-child(2) {
    background: black;
}
Run Code Online (Sandbox Code Playgroud)

适合我.为什么,以及如何应用样式<li>?似乎伪类选择器不适用于类选择器.这是奇怪的,因为我可以发誓我曾经使用它.

更新:糟糕,完全忘记了jsfiddle.

Mar*_*son 32

你的陈述是:"我想设计最后/第二个.heading."

这意味着您必须像这样编写代码:

<ul>
    <li class="heading">Hello world</li>
    <li class="heading">Hello world</li>
    <li class="heading">Hello world</li>
    <li class="heading">Hello world</li>
    <li class="heading">Hello world</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

而CSS:

ul li.heading:last-child {
    background: black;
}
ul li.heading:nth-child(2) {
    background: black;
}
Run Code Online (Sandbox Code Playgroud)

另外,使用您当前的html代码,您会写:

ul li.heading:nth-child(4) {
    background: black;
}
ul li.heading:nth-child(1) {
    background: black;
}
Run Code Online (Sandbox Code Playgroud)

我理解你的想法,但是班级"标题"的lis不是第二个或最后一个孩子.

  • 我相信提问者想要这样做:为具有类“heading”的“&lt;ul&gt;”元素的最后一个子元素设置样式 (9认同)

小智 14

您可以使用ul li.heading:nth-of-type,它只会根据您的 html css 考虑标题类

li.heading:nth-of-type(2){ background: black;}
Run Code Online (Sandbox Code Playgroud)

或者

li.heading:last-of-type{ background: black;}
Run Code Online (Sandbox Code Playgroud)

  • 这是OP问题“我想设计最后/第二个.标题的样式,我该怎么做”的实际答案。其他答案只是解释为什么他所做的不起作用。 (4认同)
  • 这也行不通。这些选择第二个或最后一个 li 元素,仅当它也具有 .heading 类时。它不仅仅选择第二个/最后一个 li.heading 元素。 (4认同)

小智 7

ul li.heading:nth-last-child(2)
Run Code Online (Sandbox Code Playgroud)

2表示你知道有多少<li>在你的<li class ="heading">之后,在我们的情况下,它是从底部开始的第二个.


Jro*_*rod 6

这是因为li.heading它不是最后一个孩子,也不是第二个孩子。它是第一个和第四个孩子ul

试试这个:

  ul li.heading:nth-child(4) {
    background: black;
}
Run Code Online (Sandbox Code Playgroud)