如何根据css中的子节点属性选择html元素?

时间:2010-06-22 18:56:23

标签: html css css-selectors

例如,在以下代码段中:

<tr>
 <td align="center">123</td>
 <td class="someclass">abc</td>
</tr>

我想选择<tr>与[{1}} <td>的所有class="someclass"元素。

我想知道在css中这是否可行,而不使用javascript。感谢。

3 个答案:

答案 0 :(得分:4)

你的要求是不可能的。 CSS从左向右读取,这意味着您无法基于childs属性指定父元素。你可以在javascript中执行此操作,但就像你说你不想使用它。

示例HTML:

<div class="box">
    <div class="green">
       Some text
    </div>
</div>

<div class="box">
    <div class="red">
       Some Text
    </div>
</div>

示例CSS:

.box {
    color: blue;
} 

.box .green {
    color: green;
}

.box .red {
    color: red;
}

如您所见,您可以单独选择父元素,但不能基于子元素属性。

从技术上讲,您应该始终向外工作。如果您需要在父级上应用特定样式,则应添加额外的类。

示例HTML:

<div class="box green">
    Some Text
</div>

示例CSS:

.box.green {
    color: green;
}

你可以在上面的CSS中看到你可以“堆叠”类来选择合适的元素。

希望这有帮助,如果您有任何问题请问。我可以发布一个javascript变体,如果为此打开一个新主题,它将能够根据子元素属性选择一个元素。

答案 1 :(得分:0)

选择具有特定类的元素:

.someclass{
  color: red;
}

答案 2 :(得分:0)

  

我想选择所有元素   有一个with class属性   “SomeClass的”。

如果选择你的意思是节点选择,你只能使用JavaScript。

jQuery的:

$(".someclass").doStuff();

但如果通过选择你的意思是CSS选择:

CSS:

可以使用CSS中的<element class="someclass">来选择

.someclass