2013-04-10 22 views
0

嗨选择所有的首个TD的,我想(与文本“标签”td)每一行的一个表中只选择第一<td>,如果你有一个简单的HTML,如:如何在表

<table> 
    <tr><td>label</td> <td>value</td></tr> 
    <tr><td>label</td> <td>value</td></tr> 
    <tr><td>label</td> <td>value</td></tr> 
</table> 

我想分配例如只有第一个<td></td>组的10%的宽度与选择器我不想要使用类。

我已经试过了如下选择:

table.widget tr:first-child td{ 
    width:10%; 
    border:0; 
} 

但是,选择只将选择第一tr的第一td没有全部TD's所以我尝试

table.widget tr td:first-child{ 
    max-width:10%; 
} 

当然,我得到了什么是TD的第一个孩子的选择。不是td本身

它可以实现这个?

回答

3

你的第二选择实际上是正确的:

http://tinker.io/40f64

table.widget tr td:first-child { 
    background: orange; 
} 

选择每个TD的第一个孩子,选择会像这样:

table.widget tr td :first-child { /* note the space after the td */ 
    // styles 
} 

应当注意的是,该OP的样品台不具备widget类应用于它。

如果你的表是表达键/值对的集合,把你的标签文本th内可能更合适:

http://tinker.io/40f64/1

table.widget th { 
    background: orange; 
} 

<table class="widget"> 
    <tr><th>label</th> <td>value</td></tr> 
    <tr><th>label</th> <td>value</td></tr> 
    <tr><th>label</th> <td>value</td></tr> 
</table> 
+0

ohhh不知道t之前的th ..很好的建议,谢谢现在工作... – ncubica 2013-04-10 20:46:02

+0

td之后没有空间和空间空间的选择器有什么区别? – ncubica 2013-04-10 20:50:32

+1

'E:first-child'只是':first-child'的一个更具体的版本。这两个元素必须是第一个孩子,但是'E:first-child'指定它必须是E的特定元素。所以'td:first-child'说*得到td,它是父母的第一个元素*,而'td:first-child'说*得到td中的第一个元素,不管它是什么样的*。 – cimmanon 2013-04-10 20:57:33

0

试试这个:

table tr td:first-child { color: red; } 

小提琴:http://jsfiddle.net/74MFH/1/

+0

他希望所有的第一'​​'每行不只是_第一个'​​' – peirix 2013-04-10 20:18:25

+0

误解了请求。在编辑中修复。 – sbeliv01 2013-04-10 20:18:53