DigitalOcean 为您旅程的每个阶段提供云产品。从 价值 200 美元的免费积分 开始!
:last-child
选择器允许您直接定位包含元素内部的最后一个元素。它在 CSS 选择器级别 3 规范 中被定义为“结构性伪类”,这意味着它用于根据元素与其父级和兄弟级内容的关系来设置样式。
假设我们有一篇文章,想要使最后一段文字变小,以充当内容的结论(如编辑注释)。
<article>
<p>Lorem ipsum...</p>
<p>Dolor sit amet...</p>
<p>Consectetur adipisicing...</p>
<p>Last paragraph...</p>
</article>
我们可以使用 :last-child
来选择它,而不是使用类(例如 .last
)。
p:last-child {
font-size: 0.75em;
}
使用 :last-child
非常类似于 :last-of-type
,但有一个关键区别:它不太具体。:last-child
只会尝试匹配父元素的最后一个子元素,而 last-of-type
会匹配指定元素的最后一次出现,即使它不是 HTML 中的最后一个元素。在上面的示例中,结果将相同,只是因为 article
的最后一个子元素恰好也是最后一个 p
元素。这揭示了 :last-child
的强大功能:它可以识别与所有兄弟元素相关的元素,而不仅仅是相同类型的兄弟元素。
下面的更完整的示例演示了 :last-child
和一个相关的伪类选择器 :first-child
的用法。
Check out this Pen!
其他资源
浏览器支持
Chrome | Safari | Firefox | Opera | IE | Android | iOS |
---|---|---|---|---|---|---|
所有 | 3.2+ | 所有 | 9.5+ | 9+ | 所有 | 所有 |
:last-child
是在 CSS 选择器模块 3 中引入的,这意味着旧版本的浏览器不支持它。但是,现代浏览器的支持是完美的,新的伪选择器在生产环境中被广泛使用。如果您需要支持旧的浏览器,您可以使用 为 IE 使用 polyfill,或者以渐进增强的方式使用这些选择器,这是一种推荐的做法。
312312312312
tha a gud site lol
如果元素的 display 属性设置为 none,则不起作用。它仍然将隐藏的元素视为最后一个子元素。我想从技术上讲这是正确的,但在很多情况下是无意的。
嗨,Natalie。你笑起来真好看。
LOL
@Eddy,别偷窥了,这不是 FB。
嗨,Chris,'last-child' 也支持列表吗?我是说 li:last-child?
我试过了,但不起作用。
是的,你可以在列表上使用它。
我是否需要在 :last-child 之前指定选择器?
也许我不知道最后一个元素是段落、div 容器还是其他。
这也正确吗?
你需要使用 * 选择器,告诉浏览器考虑所有元素
#my-container > *:last-child {
…
}
根据 Stack Overflow 上的答案,通用选择器不是必需的。同时,我在不同的网站上尝试了它,我可以确认它在没有通用选择器的情况下完美运行。
也可以确认,在没有通用选择器的情况下也能正常工作。
哦,太好了,* 选择器对我来说有效。感谢 @Rico Mossesgeld
不错的文章,谢谢!
我使用更多 li。如何更改特定的 li(例如第 3 个 li)?
你可以使用 nth-child() 选择器
your li:nth-child() {your style}
只需输入 li 的编号,例如:nth-child(3)
我在应用 :last-child 时遇到问题
请查看 http://codepen.io/anon/pen/ZYaqgp
我想删除小部件区域中的最后一个底部边框。停用第二个代码块并激活最后一个(带有 :last-child 代码)仍然会删除该区域中的所有小部件边框。
请提供建议。
.home-middle-right > .entry:last-child
123412341234
将所有锚点应用于 ul 而不是最后一个锚点
.loginNav li a:last-child { border-left:0;}
我试图在 WordPress 内容中的最后一个段落后添加一个结束标记。在内容中,我有一个块引用,WP 会自动在其中添加段落。p:last-child 标记显示在块引用的最后一个段落中,而不是主要内容的最后一个段落中。我无法弄清楚如何让它跳过块引用中的段落。
嗨,Trishah!此功能应阻止 WordPress 自动添加段落标签
不过要小心,因为这会从整个内容中删除段落。以下是 WordPress 对过滤器的引用
https://codex.wordpress.org/Function_Reference/wpautop#Disabling_the_filter
嗨,Geoff。感谢你的建议。我可以看到你的解决方案在使用可视化编辑器时如何真正改变工作流程。
经过更多思考,我设计了一种有效的 CSS 解决方案。由于结束标记放置在部分的最后一个段落和块引用的最后一个段落中,我只需要在块引用中阻止它,如下所示
.content p:last-child::after {
font-family: 'Font Awesome 5 Pro';
content: '\f06c';
margin:0 0 0 15px;
color: #009acc;
}
.content blockquote p:last-child::after {
content: '';
}
再次感谢!
太棒了,很棒的解决方案!
如何在最后一个 li 元素上使用伪类。
选择
last-child
的最简单方法是什么,但前提是它不是only-child
?换句话说,有没有比
:last-child:not(only-child)
更简单的选择器?