Html 如何匹配不包含另一个标记的标记?

Html 如何匹配不包含另一个标记的标记?,html,css,css-selectors,less,Html,Css,Css Selectors,Less,当一个ul/li不包含另一个标记ul/li时,我想对其进行不同的样式设置 当我了解到我的问题有误导性时,我明确地添加了完整的范围(对此表示抱歉) 小提琴是 html格式如下: Two-level nesting: o Grain — Baisse du rendement (end) — Sénescence plus rapide la plante (end) — Sensibilisation accrue à la fusariose des tiges

当一个ul/li不包含另一个标记ul/li时,我想对其进行不同的样式设置

当我了解到我的问题有误导性时,我明确地添加了完整的范围(对此表示抱歉)

小提琴是

html格式如下:

Two-level nesting:

   o Grain
    — Baisse du rendement (end)
    — Sénescence plus rapide la plante (end)
    — Sensibilisation accrue à la fusariose des tiges (final end)
    ;
   o Baisse du rendement ;
   o Sénescence plus rapide la plante.

One level:
   o Baisse du rendement ;
   o Sénescence plus rapide la plante ;
   o Sensibilisation accrue à la fusariose des tiges.
两级嵌套:
  • 谷物:
    • 白色杜效果图
    • Sénescence plus rapide la plante酒店
    • 敏感性的积累是一种融合
  • 白色杜效果图
  • Sénescence plus rapide la plante酒店
一级:
  • 白色杜效果图
  • Sénescence plus rapide la plante酒店
  • 敏感性的积累是一种融合
当前CSS(实际上是lessCSS代码)如下所示:

ul { 
    &>li {
        &:after {
            content: " ;";
        }
        &:last-child:after {
            content: ".";
        }

        &>ul { 
            li:after {
                content: " (end)";
            }
            li:last-child:after {
                content: " (final end)";
            }
        }
    }
}
Two-level nesting:

<ul>
    <li class="compact">Grain&nbsp;:
        <ul>
            <li>Baisse du rendement</li>
            <li>Sénescence plus rapide la plante</li>
            <li>Sensibilisation accrue à la fusariose des tiges</li>
        </ul>
    </li>
    <li>Baisse du rendement</li>
    <li>Sénescence plus rapide la plante</li>
</ul>
ul { 
    &>li {
        &:after {
            content: " ;";
        }
        &:last-child:after {
            content: ".";
        }

        &.compact:after {
            content: "";
        }
    }
}
它产生的结果如下:

Two-level nesting:

   o Grain
    — Baisse du rendement (end)
    — Sénescence plus rapide la plante (end)
    — Sensibilisation accrue à la fusariose des tiges (final end)
    ;
   o Baisse du rendement ;
   o Sénescence plus rapide la plante.

One level:
   o Baisse du rendement ;
   o Sénescence plus rapide la plante ;
   o Sensibilisation accrue à la fusariose des tiges.
一个级别可以,但两个级别不是我想要的

两级应如下,一级保持静止:

   o Grain
    — Baisse du rendement ;
    — Sénescence plus rapide la plante ;
    — Sensibilisation accrue à la fusariose des tiges.
    (final end)
   o Baisse du rendement ;
   o Sénescence plus rapide la plante.
正如您可能理解的,一旦CSS工作,我将用空字符串替换(最终结束)

有什么想法吗


更新2:我刚刚在一个类的帮助下找到了一个临时解决方案(不太好,但它很有效)(the)

你需要这样的东西

检查这个 结果 CSS
100%工作
我发现了一个临时工作,它利用了一个单独的类,如下所示:

ul { 
    &>li {
        &:after {
            content: " ;";
        }
        &:last-child:after {
            content: ".";
        }

        &>ul { 
            li:after {
                content: " (end)";
            }
            li:last-child:after {
                content: " (final end)";
            }
        }
    }
}
Two-level nesting:

<ul>
    <li class="compact">Grain&nbsp;:
        <ul>
            <li>Baisse du rendement</li>
            <li>Sénescence plus rapide la plante</li>
            <li>Sensibilisation accrue à la fusariose des tiges</li>
        </ul>
    </li>
    <li>Baisse du rendement</li>
    <li>Sénescence plus rapide la plante</li>
</ul>
ul { 
    &>li {
        &:after {
            content: " ;";
        }
        &:last-child:after {
            content: ".";
        }

        &.compact:after {
            content: "";
        }
    }
}
不便之处在于,您需要向数据源添加不具有真正语义的信息。但它现在起作用了


希望有人能找到更好的方法继续

&:last child:after{content:“(final end)”;}
?会有任意级别的嵌套吗?“如果没有,你应该可以。”博尔特:就我的情况而言,我不会进入更多的额外级别。所以两级ul是我需要解决的问题。好吧,我把它作为一个答案发布了。我发现我的问题不是很好,我已经更新了它(包括小提琴)。没有。将你的结果与问题进行比较。@BoltClock我现在更新我的答案检查,这已经成功了。现在我在犹豫-
内容:“(结束)
部分似乎完全丢失了。这可能很重要;除非绝对必要,否则我不建议丢弃任意值。