2017-03-17 109 views
0

我想將表格中的某些列居中但我遇到了問題。我知道在過去你只是簡單地將內聯樣式應用到每個TD上,但必須有更好的方法。將表格中的某一列居中

下面是一個簡單的例子:

.centerText{ 
 
\t text-align:center; 
 
}
<table border="1"> 
 
     <col> 
 
     <col class="centerText"> 
 
     <thead> 
 
     <tr> 
 
      <th>heading1</th> 
 
      <th>heading2</th> 
 
     </tr> 
 
     </thead> 
 
     <tbody> 
 
     <tr> 
 
      <td>1</td> 
 
      <td>2</td> 
 
     </tr> 
 
     <tr> 
 
      <td>3</td> 
 
      <td>4</td> 
 
     </tr> 
 
     <tr> 
 
      <td>5</td> 
 
      <td>6</td> 
 
     </tr> 
 
     <tr> 
 
      <td>7</td> 
 
      <td>8</td> 
 
     </tr> 
 
     </tbody> 
 
    </table>

與該類我試圖中心內部的文本。我知道將css應用於列將適用於更改列和文本顏色等的背景顏色,但我不知道如何使用它來居中列。我假設,因爲我需要集中td的內容,這可能只是TD元素本身的集中;這已經是100%了。 我知道我可以說在這個TR中將CSS應用於第5個TD,但看起來很脆弱。

此外,如果您可以告訴我如何以這種方式更改列的寬度,則可獲得額外獎勵。我用山坳width屬性但在HTML 5(儘管它仍然是目前支持已過時。

+0

要居中文本,對不對?不是專欄? – Mark

+0

我沒有失望,你究竟想幹什麼? –

+0

''不支持'class'屬性:http://stackoverflow.com/questions/9623601/how-to-use-class-attribute-in-html-col –

回答

0

CSS

table { 
    border-collapse: collapse; 
    width: 100%; 
} 

td { 
    text-align: center 
} 
+0

td {text-align:center;} – GavinBrelstaff

+0

但我必須在每行添加一個align =「center」,不會? – shellwe

1

做,你的類沒有任何地方使用

tr td:nth-child(2) { 
 
\t text-align:center; 
 
}
<table border="1"> 
 
    <thead> 
 
    <tr> 
 
     <th>heading1</th> 
 
     <th>heading2</th> 
 
    </tr> 
 
    </thead> 
 
    <tbody> 
 
    <tr> 
 
     <td>1</td> 
 
     <td >2</td> 
 
    </tr> 
 
    <tr> 
 
     <td>3</td> 
 
     <td>4</td> 
 
    </tr> 
 
    <tr> 
 
     <td>5</td> 
 
     <td>6</td> 
 
    </tr> 
 
    <tr> 
 
     <td>7</td> 
 
     <td>8</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

我刪除:

<col> 
    <col class="centerText"> 

.centerText{ 
    text-align:center; 
} 

因爲山坳並不意味着什麼,你沒有關閉標籤。

+0

但是,這是你如何集中所有的項目,我只是想中心第二列。實際上,我的項目有8列,將有一千個條目,我需要3列居中。也col存在,但也許它已被棄用遺忘https://www.w3schools.com/tags/tag_col。 asp – shellwe

+0

「col並不意味着什麼」不完全正確,你只是不能使用'class' :) –

+0

完成了,你沒有說你只是需要第二列,現在沒關係^^ –

0

如果你想你的所有TD的內容對齊到中心

的centerText類添加到您的表

<table class="centerText" border="1"> 
0

這不是完全清楚你想要什麼,但如果你想中心內容您可以使用此CSS規則:

td:nth-child(2) { 
    text-align:center; 
} 

在此示例中它適用於第二列,但您可以爲任何列定義該列。它的工作原理是td始終是tr的子項,因此您可以使用nth-child選擇器。

td:nth-child(2) { 
 
    text-align: center; 
 
}
<table border="1"> 
 
    <col> 
 
    <col class="centerText"> 
 
    <thead> 
 
    <tr> 
 
     <th>heading1</th> 
 
     <th>heading2</th> 
 
    </tr> 
 
    </thead> 
 
    <tbody> 
 
    <tr> 
 
     <td>1</td> 
 
     <td>2</td> 
 
    </tr> 
 
    <tr> 
 
     <td>3</td> 
 
     <td>4</td> 
 
    </tr> 
 
    <tr> 
 
     <td>5</td> 
 
     <td>6</td> 
 
    </tr> 
 
    <tr> 
 
     <td>7</td> 
 
     <td>8</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

+0

什麼是複製答案並轉發它的意義? :| –

+0

@MarcoSalerno BTW:我實際上已經讀過你的答案的第一句話(關於OP的課程),並且認爲它與我心目中的內容不同(沒有課程,只是一個選擇器) - 所以我沒有閱讀。你實際上使用了一個選擇器和NO類,只有在你評論之後才能看到。所以我們有相同的代碼,但有不同的解釋...... – Johannes