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

如何正确从第10个.bfaText元素开始应用边框样式?

问题原因

你用的.bfaText:nth-child(n + 10)选择器逻辑有误。nth-child(n+10)是匹配某个父元素下的第10个及以后的子元素,同时要求该子元素带有.bfaText类。但你的HTML结构里,每个.bfaText的父元素是<ol>,里面交替排列着<li>和<div.bfaText>,所以每个.bfaText在父元素里的位置都是偶数位(第2、4、6...个)。当父元素里的子元素总数到10时,对应的.bfaText其实是第5个(10个子元素里有5个div),这就是样式提前生效的核心原因。

而且这个选择器根本没法实现“全局第10个及以后的.bfaText”的需求——CSS没有原生选择器能直接选中页面中第n个同类元素。

解决方案

方法一:JavaScript实现(推荐,灵活可靠)

通过JS选中所有.bfaText元素,给第10个及以后的元素添加自定义类,再用CSS给这个类加样式:

// 获取所有.bfaText元素
const bfaTextElements = document.querySelectorAll('.bfaText');
// 从第10个开始(索引从0起步,对应索引9)
for (let i = 9; i < bfaTextElements.length; i++) {
  bfaTextElements[i].classList.add('bordered-bfaText');
}

对应的CSS:

.bordered-bfaText {
    border: 2px solid orange;
    margin-bottom: 1px;
    padding-left: 10px;
}

方法二:CSS硬编码(仅适合固定数量的场景)

如果页面中.bfaText的数量和位置完全固定,比如第一个<ol>里有1个,第二个<ol>里有12个,那么第10个全局.bfaText就是第二个<ol>里的第9个.bfaText,可以这样写CSS:

/* 第二个ol下的第9个及以后的.bfaText */
.lmn-list-group-initial:nth-child(2) .bfaText:nth-of-type(n + 9) {
    border: 2px solid orange;
    margin-bottom: 1px;
    padding-left: 10px;
}

但这种方法局限性大,一旦.bfaText的数量或结构变动,样式就会失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 23:34:49