CSS:Cascade只有一个级别

时间:2009-02-26 17:32:00

标签: html css inheritance

说我有一个< table>定义了一个css类(< table class =“x”>)并且我想改变< td>的第一级的'color'属性,这是否可以使用css而不在相关的&lt上设置类; TD>

<table class="x">
    <tr>
        <td>
            xxxx
            <table><tr><td>yyy</td><tr></table>
        </td>
    </tr>
<table>

我只希望xxxx改变颜色 - 所以当我只想要xxxx目标时,.x td{color:red;}当前将适用于xxxx和yyyy,但宁愿不给xxxx td一个类名

2 个答案:

答案 0 :(得分:17)

试试这个:

table.x > tr > td { ... }

>是直接子选择器。

答案 1 :(得分:8)

一个选项是通过将第二级设置为您想要的值来覆盖级联效果,允许您取消顶级效果。

这样的事情:

table.x tr td { ...}

table.x tr td table tr td { ... }

第一个语句将应用于.x表下的所有td,但第二个语句将覆盖内部嵌套级别(以及它们下面的任何内容)。由于它出现在第一个语句之后,它将覆盖上面语句中设置的任何内容。

这也可以在IE中使用,因为它使用了更为基本的祖先/后代构造而不是子代,而这些构造并不受支持。