2012-11-22 21 views
0

我想选择div下的所有th和td。 写是这样的:因为它选择所有的TD-CSS在一个ID下选择几种类型

#div_id th,td { 
    ... 
} 

不好。

我看到的解决方案here

#div_id th,#div_id td { 
    ... 
} 

有没有别的办法,所以我不应该重复#div_id?

谢谢。

+0

否;这几乎是唯一的方法。除非你将'id'或'class'名称分配给你想要定位的单个'td'或'th'元素。 –

+0

CSS是有限的。这就是替代语法出现的原因。例如,在SASS中,您可以编写'#div_id',然后写入下一行'th,td'。 –

回答

0

纯粹的CSS明智,没有比你自己更好的答案。但你可以看看SASS或类似的技术,这将允许这样的事情。

0

假设你的代码看起来是这样的:

<div id="div_id"> 
    <table border="1"> 
     <tr> 
      <th> 
       Header 1 
      </th> 
      <th> 
       Header 2 
      </th> 
     </tr> 
     <tr> 
      <td> 
       row 1, 
       <p> 
        cell 1 
       </p> 
      </td> 
      <td> 
       row 1, 
       <p> 
        cell 2 
       </p> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       row 2, 
       <p> 
        cell 1 
       </p> 
      </td> 
      <td> 
       row 2, 
       <p> 
        cell 2 
       </p> 
      </td> 
     </tr> 
    </table> 
</div>​​​​​​​​​​​​​​​​​​​​​​ 

您可以应用的规则像这样:

#div_id tr > * { 
    border: 1px dotted #CCC; 
}​ 

,其选择中的第一个元素(也是唯一的第一个元素)一个tr,这只能是thtd

注意,如果我有,而不是定义的规则为:

#div_id tr * { 
    border: 1px dotted #CCC; 
}​ 

p标签也将有一个虚线边框。

但是,只需输入多余的8个字符通常会更有意义,因为它更容易理解后来做了什么。

+0

我认为“第一元素”是指所有的孩子。 ':P' –

+0

是的,所有的孩子,但没有孙子等。 – Godwin