2013-03-28 93 views
32

如果我有一個table兩欄,我該如何指定padding或任何其他的CSS,以便它只適用於第一列<td> s。同樣如何設計一個第n個列?風格第一個​​列表的不同

+1

http://quirksmode.org /css/selectors/firstchild.html - http://quirksmode.org/css/selectors/nthchild.html – techfoobar 2013-03-28 05:52:05

回答

77

您可以使用n-th child selector

爲目標的第n個元素,那麼你可以使用:

td:nth-child(n) { 
    /* your stuff here */ 
} 
+11

建議td:這是因爲它對較老的IE版本有更多的支持。如果瀏覽器支持不是問題,那麼第n個孩子是一個開始使用的強大選擇器。 – lukek 2013-03-28 06:05:54

+2

是的,對於第一個元素,「first-child」更好。但OP要求兩者:) – RRikesh 2013-03-28 06:08:25

+11

而'n'從1開始,而不是0。 – robsch 2015-10-28 15:56:47

3

這應該有所幫助。它的CSS3:第一個孩子,你應該說你想要表格的第一個trhttp://reference.sitepoint.com/css/pseudoclass-firstchild

+2

此外,如果您只想定製特定表格的第一個「tr」,您可以將'.tableclass tr:第一個孩子「或」#表格tr:第一個孩子「# – tiantang 2013-03-28 05:56:31

+1

':first-child'對CSS3來說並不陌生。 – BoltClock 2013-03-28 10:57:34

7

如果你已經支持IE7,更兼容的解決方案是:

/* only the cells with no cell before (aka the first one) */ 
td { 
    padding-left: 20px; 
} 
/* only the cells with at least one cell before (aka all except the first one) */ 
td + td { 
    padding-left: 0; 
} 

而且工作正常li;一般兄弟選擇器~可能更適合混合元素,如標題h1,然後是段落和子標題,然後是其他段落。

2

:第n個孩子():第n的類型()僞類允許用戶選擇與一個式元件。

語法是:nth-​​child(an + b),其中您用您選擇的數字替換a和b。

例如,:第n個孩子(3n + 1)選擇第1,4,7等孩子。

td:nth-child(3n+1) { 
    /* your stuff here */ 
} 

:第n的類型()的工作原理相同,但它僅考慮了給定類型的元件(在本例中)。

0

要選擇的表的第一列可以使用此語法

TR TD:第n個孩子(1N + 2){填充左:10px的;}