较少CSS-选择与其父类具有相同类的子类

较少CSS-选择与其父类具有相同类的子类,css,css-selectors,less,Css,Css Selectors,Less,今天刚开始用更少的钱工作。。。我有一个问题要解决。 有没有一种方法可以将样式应用于与其父UL具有相同类名的LI,而不事先知道该类名是什么? 例如,以下是一些HTML: <ul class="random-classname"> <li class="foo">foo</li> <li class="random-classname">Select Me!</li> <li class="bar">ba

今天刚开始用更少的钱工作。。。我有一个问题要解决。
有没有一种方法可以将样式应用于与其父UL具有相同类名的LI,而不事先知道该类名是什么?

例如,以下是一些HTML:

<ul class="random-classname">
    <li class="foo">foo</li>
    <li class="random-classname">Select Me!</li>
    <li class="bar">bar</li>
</ul>
  • foo
  • 选择我 酒吧

我想对第二个元素应用背景色,而不在CSS中使用特定的类名。

您想得太多了。仅使用选择器
.random classname
,无论是LESS还是CSS,都将同时选择
ul
li

这只回答了非常特定用例中的问题,我怀疑这并不完全是您的用例(因为它仍然需要将类名放入css中,它只允许程序员可能让其他人分配它)

如果在编译时知道“随机”名称,则可以将类名设置为变量,然后进行如下处理:

@randomName: random-classname; //set at compile time

.@{randomName} {
  straight-property: value;
  & > & {
    nested-property: value;
  }
}
这将产生:

.random-classname {
  straight-property: value;
}
.random-classname > .random-classname {
  nested-property: value;
}

如果您正在构建某种类型的框架,或者在其他阶段通过php从用户输入动态设置变量,上述内容可能会很有用目前还不可能,正如他们所指出的,javascript是这种情况下的最佳选择。

不;CSS不支持。LESS编译到CSS中,它不能做CSS不能做的任何事情。SLaks是对的,LESS必须在不知道
随机类的情况下生成CSS选择器
ul.random-classname li.random classname
name
part。但是,您可以使用Javascript找到所有这些元素,并为它们添加另一个类。如果您希望我发布Javascript解决方案,请告诉我(如果您使用的是jQuery,也请告诉我)谢谢ZZZBOV,我需要一点现实的提醒。Paulpro-是的,我会使用jQuery。不需要发布解决方案,我很好。如果“事先不知道那个类名是什么”,你会怎么做?我一定误解了。