table.class tr,th和table .class tr之间有区别吗?

时间:2011-09-21 00:41:24

标签: html css css-selectors

我用这种方式设计元素的时间最长。

table .class tr, th{

} 

今天我有一些疯狂的css相关错误,我发现它可能在过去偶然起作用,实际上它正在做的不是选择某个类的表,而是选择表后跟某个元素的元素类。

我有点假设css会忽略table和.class之间的空格。但是吗?

table.class tr, th{

} 

这会有不同的作用吗?我不敢相信我之前没想过这个! (尴尬)

谢谢!

4 个答案:

答案 0 :(得分:4)

table .class tr选择此项:

<table>
    <tbody class="class">
        <tr></tr>
    </tbody>
</table>

table.class tr选择此内容:

<table class="class">
    <tr></tr>
</table>

答案 1 :(得分:2)

你在问题​​中回答了这个问题:

table .class tr, th ...在tr a .class element内的table内选择th

table.class tr, th ...在tr a table with the class "class"内选择th

空间有所不同。

使用空格,您在tabletr之间选择了另一个元素(可能是theadtbody?)

如果没有空格,则选择tableclass

顺便说一句,我不确定你是否想要这个,但, th表示“也为所有th s 提供了相同的样式。

答案 2 :(得分:1)

table.foo选择类为foo的表。

table .foo选择具有类foo的所有元素,并且位于表中。

所以你的选择器之前:

table .class tr, th选择位于具有类tr且位于表格内的元素内的所有class,以及页面上的所有th。< / p>

答案 3 :(得分:1)

table .class tr会选择tr

<table>
  <tbody class="class">
    <tr></tr>
  </tbody>
</table>

但没有:

<table class="class">
  <tr></tr>
</table>

虽然table.class tr会选择tr

<table class="class">
  <tr></tr>
</table>

tr

<table class="class">
  <tbody>
    <tr></tr>
  </tbody>
</table>

但没有:

<table>
  <tbody class="class">
    <tr></tr>
  </tbody>
</table>