驚いたことに、現在のブラウザでは、テーブルの列にテキストの配置を適用することはかなりサポートされていないことがわかりました。Firefox 3.5.2、Safari 4.0.3、IE8のいずれも、下の「金額」列を右揃えで表示しません。
HTML:
<table class="full_width">
<caption>Listing employees of department X</caption>
<col></col>
<col></col>
<col></col>
<col class="amount" width="180"></col>
<thead>
<tr>
<th>Name</th>
<th>Phone number</th>
<th>Email</th>
<th>Salary</th>
</tr>
</thead>
<tbody>
<tr>
<td>John Doe</td>
<td>+45 2373 6220</td>
<td>john@doe.com</td>
<td>20000</td>
</tr>
</tbody>
</table>
CSS
.amount{
text-align: right;
}
なぜこれが機能しないのですか?また、(firebugを介して)TD要素を左揃えにするFirefoxのネイティブルールをオフにしようとしましたが、それも機能しませんでした。
量cssクラスで背景色ルールを設定することが実際に機能することがわかります。したがって、.amountクラスがすべての列に適用されることがわかります。
CSS
.amount{
text-align: right;
background-color: aqua;
}
CSS 2の仕様では、col要素でサポートされている属性は4つだけであるとされているようです。「テーブル列のスタイル設定が許可されていないのはなぜですか? 」を参照してください。
最適なソリューションを選択するための基準:かなりクロスブラウザーでサポートされている必要があります(特定のソリューションを含めるためにjqueryまたは条件付きコメントを使用して生きることができるIE6では必ずしもそうではありません)。また、複数のクラス、複数の異なる列を適用することを期待しています(つまりclass="amount before_tax"
)
各行の関連するtdにクラスを設定するのは嫌です。私のオプションは何ですか?