Размеры таблиц в HTML
Таблицы могут растягиваться по колонке контента или оставаться компактными, как карточка цен. После урока о границах, где рисовали линии сетки, этот урок задаёт размер коробки: используйте CSS (width, max-width, padding, опциональные ширины столбцов), чтобы таблица подходила и к данным, и к экрану. Оформление остаётся в CSS; table / tr / th / td по-прежнему несут смысл. Если границы сделали сетку видимой, размер делает её удобной.
Что значит «размер» для таблицы
Размер — не одно число. У всей таблицы есть ширина относительно родителя. Ячейкам нужен padding, чтобы текст дышал. Столбцы могут делить место поровну или отдавать больше колонке подписей. На телефоне таблица с 1200px заставляет неудобно скроллить по горизонтали даже при двух коротких столбцах. Гибкие рецепты — часто width: 100% с разумным max-width — держат простые сетки читаемыми, не подменяя честную структуру th/td.
Прямой ответ
Задайте width на table (например 100%) и при необходимости ограничьте max-width (например 480px или 640px). Подскажите ширину столбца на th/td, когда одной колонке нужно больше места. Предпочитайте проценты и max-width огромным фиксированным пиксельным ширинам, которые переполняют телефоны. Сохраняйте border-collapse и padding из урока о границах, чтобы размер и линии работали вместе. Ограничивайте правила классом, чтобы одно демо не меняло все таблицы на странице.
Гибкая ширина с подсказкой столбца
Частый шаблон новичка: таблица заполняет родителя до максимума, границы остаются collapsed, а первый столбец получает большую долю для подписей.
Flexible table width
html<style>
table.prices { width: 100%; max-width: 480px; border-collapse: collapse; }
table.prices th, table.prices td { padding: 8px; border: 1px solid #555; }
table.prices th:first-child, table.prices td:first-child { width: 60%; }
</style>
<table class="prices">
<tr><th>Plan</th><th>Price</th></tr>
<tr><td>Starter</td><td>0</td></tr>
<tr><td>Pro</td><td>9</td></tr>
</table>
Чтение гибкого примера
width: 100%позволяет таблице использовать доступную ширину контентаmax-width: 480pxне даёт ей стать гигантской полосой на широких мониторахborder-collapse: collapseне даёт размеру и границам конфликтоватьpadding: 8pxдаёт каждой ячейке читаемое внутреннее пространство:first-child { width: 60%; }намекает, что столбец названия плана шире столбца цены- Область действия класса (
.prices) не даёт случайно изменить все таблицы
Компактная таблица с max-width
Иногда нужна маленькая карточка сравнения, которая никогда не тянется на всю ширину. Меньший max-width (и всё ещё width: 100% внутри потолка) держит сетку аккуратной на десктопе и мобильном.
Compact max-width table
html<style>
table.compact {
width: 100%;
max-width: 320px;
border-collapse: collapse;
}
table.compact th, table.compact td {
padding: 6px 10px;
border: 1px solid #444;
text-align: left;
}
</style>
<table class="compact">
<tr><th>Item</th><th>Stock</th></tr>
<tr><td>USB cable</td><td>14</td></tr>
<tr><td>Notebook</td><td>3</td></tr>
</table>
Чтение компактного примера
- Та же гибкая идея, более тугой
max-widthдля карточного следа - Горизонтальный padding (
6px 10px) может отличаться от вертикального для комфорта text-align: left— опциональное оформление, полезно когда числа и слова делят маленькую сетку- По-прежнему без вложенных layout-таблиц; вы лишь задаёте размер настоящей таблицы данных
- Уменьшите окно браузера: таблица должна сжиматься с колонкой до пределов контента, а не навязывать огромный скролл по умолчанию
Фиксированные пиксели против гибких привычек
Фиксированные ширины вроде width: 1200px могут выглядеть нормально на большом мониторе и мучительно на телефоне. Если нужен минимум для печати или плотного дашборда, начните с текучего width плюс max-width или позже спланируйте адаптивную стратегию. Для таблиц новичка в этом курсе гибкий размер — хорошая привычка по умолчанию. Проценты width столбцов — подсказки: браузер может подстроить при крайне длинном или неразрывном контенте, поэтому держите текст ячеек коротко при обучении. Если столбец не сжимается, проверьте длинные URL или слова без пробелов, прежде чем винить max-width.
Padding, столбцы и collapse вместе
Работа с размером стоит рядом с уроком о границах. Без padding плотные ячейки кажутся тесными даже при идеальной внешней ширине. Без collapse эксперименты с шириной могут выглядеть толще или неровно, потому что отдельные границы съедают место. Опциональные подсказки столбцов (width на ячейках :first-child или на конкретном th) направляют браузер, когда подписям нужно больше места, чем значениям. Не используйте CSS размера как предлог убрать заголовки th или перестроить страницу вложенными layout-таблицами — этот конфликт уже решён в сессии Tables.
Практика в редакторе
- Дайте учебной таблице
width: 100%иmax-width(попробуйте480px). - Добавьте padding к
th/td(переиспользуйте стили границ, если они ещё есть). - Измените размер окна — убедитесь, что простая таблица из двух столбцов не заставляет бесконечно скроллить по горизонтали.
- По желанию сделайте первый столбец шире через
:first-childили class. - Дублируйте таблицу с более тугим
max-widthвроде320pxи сравните след. - Временно задайте
width: 1200px, отметьте боль на мобильном, затем уберите. - Переключайте
border-collapseпри заданных ширинах и смотрите, как меняется ощущение внешнего размера. - Напишите под таблицей одно предложение: выбранный max-width и почему.
Лёгкие ошибки
- Фиксированные таблицы
width: 1200px, ломающие маленькие экраны - Нет padding — плотные, плохо читаемые ячейки
- Борьба границ и ширин без
border-collapse - Глобальный
table { width: ... }, меняющий каждое демо на странице - Ожидание, что подсказки
widthстолбца перебьют крайне длинные неразрывные строки - Использование размера таблицы, чтобы снова имитировать колонки полностраничного layout
- Забытый
max-width, из‑за чего одинwidth: 100%растягивает крошечную таблицу из трёх ячеек на ultrawide
Итог
- Задавайте размер таблиц через CSS
widthиmax-width - Используйте padding для читаемых ячеек
- Предпочитайте гибкие макеты на маленьких экранах
- Подсказки ширины столбцов опциональны и по возможности ограничены классами
- Держите границы collapsed, чтобы размер и линии сотрудничали
- Структура остаётся в HTML; размеры — в CSS
- Следующие уроки про заголовки строятся на сетке, уже удобно вписывающейся во viewport
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху