2010-06-09 49 views
2

我有一個如下表。想象一下有多列,我想通過格式化<col/>標籤,我可以改變該列中每個<td>的格式。我想給第一欄中的數據一個text-align:center,但它似乎不工作。除了向每個<td>增加一個班級之外,有沒有辦法讓這個工作起作用?格式化HTML表格列中的文本?

<table> 
    <col class="column"/> 
    <tr> 
     ... 
    </tr> 
    <tr> 
     ... 
    </tr> 
    <tr> 
     ... 
    </tr> 
</table> 

回答

1

爲表格創建一個類, <table class="table1">。然後,在您的CSS中,您可以參考像這樣的單元格:

.table1 tr>td:first-child { text-align:center; } 
+0

是的,不會只是第一次。 只需使用CSS選擇器來獲取每個tr的第一個孩子td? – RPM1984 2010-06-09 00:25:06

+0

好點。我編輯了片段。 – Antony 2010-06-09 00:29:22

+1

這不適用於IE <= 6,因爲['>'combinator](http://msdn.microsoft.com/en-us/library/cc351024%28VS.85%29.aspx#combinators),特別是在這個宏偉的版本7之前不支持[':first-child'僞類](http://msdn.microsoft.com/en-us/library/cc351024%28VS.85%29.aspx#pseudoclasses)程序。 – 2010-06-09 01:41:01

0

該類涵蓋了與其綁定的標記。既然你在做任何事之前關閉了標籤,這個類並不會影響任何東西。 像其他人說的那樣,把它放在桌子上,桌子上橫跨所有的tds。

0

無法在所有常見瀏覽器中使用此工具,但是您可以使用現代CSS選擇器以標準(如果未完全實現)方式達到效果。

tr:nth-child(1) { styles } 

其中1是第一列。

更普遍地看到http://www.w3.org/TR/css3-selectors/#nth-child-pseudo

常見的解決辦法是增加每個「TD」這通常是一個非問題,因爲你通常從其他代碼生成HTML類。我從來沒有見過以前參考過的col類,所以做了快速搜索,看來a)它應該在colgroup標記中,b)它可以設置的樣式有限。

+1

這隻適用於支持此CSS 3功能的瀏覽器。你寧願使用'td:first-child',這是一個CSS 2.1特性*和*在IE> = 7中可用。 – 2010-06-09 01:47:51

+0

如果第一個孩子是他想要的(他說特定的列不是第一列)。除非我擁有對瀏覽器或javascript啓用狀態的控制,否則我不認爲我會在每個td上使用除課程之外的任何解決方案。 – 2010-06-09 02:22:48

+0

啊,我看到他只提到第一列 - 我發誓它之前要求給定列 – 2010-06-09 07:36:58

0

非CSS的方法是簡單地將align =「center」添加到相應列的td中。這是Dreamweaver節省開發時間的一種方法:選擇整個列,輸入中心進行對齊並完成。