You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何为ol.meaning下的li:last-child添加padding-bottom无效?

问题原因与解决方案

为什么.meaning > li:last-child无效?

你写的这个选择器用了直接子元素选择器>,它只能匹配<ol class="meaning">的直接子级<li>——也就是那些带.meaning-word类的元素。但<li class="sentence-en">和<li class="sentence-de">是嵌套在<ul class="sentences">里的,属于<ol>的孙子元素,不是直接子元素,所以这个选择器根本选不到它们。

两种可行的解决方法

方法一:全局匹配所有层级的最后一个li

如果不需要区分嵌套层级,直接给.meaning下所有<li>的最后一项加内边距:

.meaning li:last-child {
  padding-bottom: 20px; /* 替换成你需要的数值 */
}

这个选择器会覆盖三种场景:

  • 最后一项是.meaning-word
  • 最后一项是嵌套在ul里的.sentence-en
  • 最后一项是嵌套在ul里的.sentence-de

方法二:精准匹配最后一个子元素的情况

如果想更精准,只针对<ol>的最后一个子元素(不管是li还是ul)处理:

/* 处理ol最后一个直接子元素是li的情况 */
.meaning > li:last-child,
/* 处理ol最后一个直接子元素是ul时,选中ul里的最后一个li */
.meaning > ul:last-child li:last-child {
  padding-bottom: 20px;
}

这种写法不会影响.meaning中间嵌套的ul里的li,只处理整个列表的最后一项。

内容的提问来源于stack exchange,提问作者Shakalakah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 00:53:27