CSS中有没有办法选择一个具有给定类的子元素的元素?
我想将样式应用于<ul>
列表,其中<li>
具有特定的类。
答案 0 :(得分:12)
使用css是不可能的,因为你是通过选择一个基于后代的祖先来对抗级联的。
我能提供的最好的建议是jQuery方法:
$(document).ready(
function() {
$('.givenClassName').parent().addClass('something');
}
);
这会找到带有givenClassName
的元素,然后选择其父元素并将类something
添加到该元素。
@Blaenk提出了一种替代方法,它更通用(他的方法不要求祖先元素是你选择的元素的父元素)。
显然其他JS库和JS本身都可以达到同样的效果,虽然我不能提供特别的建议,因为我还只是熟悉JS并且主要使用jQuery(为什么是的,我<我自己感到羞耻......)。
答案 1 :(得分:5)
据我所知,遗憾的是,CSS无法实现。
如果您可以使用Javascript,jQuery可以使用closest()
方法执行此操作。它的documentation甚至列出了一个与你非常相似的例子:选择一个具有特定类的li的ul。
$("li.some-class").closest("ul");
请原谅我,如果这不是在jQuery中执行此操作的最佳方式。我实际上是jQuery的新手,这是我到目前为止学到的方法之一,看起来很合适。
答案 2 :(得分:2)
没有。 CSS Cascade不允许使用这种选择器。
在这种情况下,最好的解决方案是使用JavaScript修改DOM或更改生成的HTML以将类添加到ul
标记。
答案 3 :(得分:-4)
ul li {
/* styles */
}
这是你要求的吗?