Практика ширины столбцов таблицы HTML
Каковы хорошие практики при выборе ширины столбцов в таблице?
Скажем, у меня четыре столбца, имя (переменная ширина), описание (длинное содержание текста), count (макс. 3 символа), дата (фиксированный формат).
Что было бы хорошей практикой? Я думаю, что фиксированная ширина для descr., Count и width (таким образом, фактически также делает имя "фиксированной" шириной).
Но мой реальный вопрос в том, как выбрать определенный размер ширины.
Например, если формат даты - yyyy-MM-dd, есть какой-то трюк, чтобы преобразовать эти 10 символов в ширину, что гарантирует, что он отображает ok в любом браузере, используя любой шрифт и размер шрифта (без лишнего пространства )?
edit: с фиксированным я имею в виду нечто похожее на "фиксированное количество пикселей относительно ширины шрифта"
Ответы
Ответ 1
Вы можете объявить white-space: nowrap;
на всех ячейках, которые вы хотите растянуть, сколько нужно, не используя лишнее пространство (имя, дата, счет), а затем просто дайте оставшейся ячейке ширину 100%. Таким образом, клетка с 100% -й шириной будет расширяться как можно больше, не заставляя другие ячейки разрушаться на нескольких линиях.
Ответ 2
Если вы хотите сэкономить много разметки...
Во-первых, если по фиксированной ширине вы имеете в виду фиксированный процент, добавьте следующее в таблицу стилей:
.width1 {
width: 1%;
}
.width2 {
width: 2%;
}
.width99 {
width: 99%;
}
.width100 {
width: 100%;
}
Это дает вам необходимую гибкость, если вы решите применить нечетную процентную ширину для любого из них, если хотите - например, ширина23 на одном из них, ширина 27 на другой.
Теперь это умный бит. Используя тег col
, вы можете применять ширину только один раз, а не в каждой ячейке. Я знаю, что вы можете применять ширину только к первой строке, и они будут устанавливать ширину для одной и той же ячейки в каждой другой строке, но тег col
можно использовать и для установки других свойств. Например:
<table class="width100">
<col class="width15" style="background-color: #cccccc;" />
<col class="width65" />
<col class="width10" />
<col class="width10" />
<tr>
<td>My Sample Name</td>
<td>My Sample Long Description</td>
<td>5</td>
<td>2010-Oct-08</td>
</tr>
</table>
Обычно я предпочитаю использовать эту технику, но если это макет, который я буду использовать на нескольких таблицах (например, таблица клиентов может быть той же компоновкой, что и таблица агентов), тогда я создам класс для каждого столбца и установите ширину и т.д. в этом классе. Затем я применим соответствующий класс к каждой ячейке. Я полагаю, что оба метода могут быть объединены - соответствующий класс может быть применен к соответствующему столбцу, но тот факт, что свойства заданы в одном месте (таблица стилей), означает, что вам нужно только изменить его в одном месте.
Надеюсь, что это поможет, и что это то, что вы ищете.
Ричард