К моему удивлению, я только что узнал, что применение выравнивания текста к столбцу таблицы довольно плохо поддерживается в текущих браузерах. Ни в 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>[email protected]</td>
<td>20000</td>
</tr>
</tbody>
</table>
CSS
.amount{
text-align: right;
}
Почему это не работает? Также я попытался (через firebug) отключить собственное правило Firefox, которое выравнивает элементы TD по левому краю, но это тоже не сработало.
Я вижу, что настройка правила цвета фона в классе суммы css действительно работает. Итак, я знаю, что класс .amount применяется ко всем столбцам:
CSS
.amount{
text-align: right;
background-color: aqua;
}
Спецификация CSS 2, по-видимому, говорит, что элемент col поддерживает только четыре атрибута - см. Почему столбцы таблицы стилей не разрешены?
Критерии выбора наилучшего решения: должна поддерживаться достаточно кроссбраузерность (не обязательно в IE6, где я мог бы жить с использованием jquery или условного комментария для включения конкретного решения). Кроме того, я ожидаю применить несколько классов к нескольким различным столбцам (т.е. class="amount before_tax"
)
Я бы не хотел устанавливать классы для соответствующих td в каждой строке. Каковы мои варианты?