Отступы и выравнивание в ячейках таблицы HTML
Как всегда напоминаю, что есть замечательный видеокурс о вёрстке сайтов, в котором рассказывается в том числе о HTML и CSS:
Продолжаю рассказывать о таблицах в HTML и сегодня об одном из наиболее часто встречающемся вопросе — о том, как выровнять текст в ячейке таблицы и как сделать отступы между текстом и границами ячейки.
Если вы создадите простую таблицу, как это мы делали здесь, то она будет не очень красивой — текст будет расположен очень близко к границам ячеек. И это будет особенно неприятно, если границы таблицы не прорисованы — тогда получится, что текст в разных ячейках просто сольётся в один сплошной.
Этого можно избежать, если использовать определённые атрибуты таблицы: cellpadding и cellspacing .
Кроме того, часто требуется выровнять текст в ячейке по той или иной границе (по умолчанию текст выравнивается по левому краю по горизонтали и по середине по вертикали). Выровнять текст можно с помощью атрибутов align (горизонтальное выравнивание) и valign (вертикальное выравнивание, поддерживается не всеми браузерами). Пример:
В комментариях имеются некоторые пояснения. Ну а вообще здесь разъяснять особо нечего. Разве что стоит упомянуть про атрибуты width и height , которые задают ширину и высоту таблицы соответственно для того, чтобы мы могли чётко увидеть, как работает выравнивание в ячейках.
Вот так примерно эта таблица будет выглядеть на экране:

А теперь про отступы в ячейках и от границ таблицы. В примере выше нам пришлось использовать атрибуты width и height , потому что без этого ячейки были бы расположены вплотную друг к другу, а текст в ячейках также был бы вплотную к границам ячеек. И мы не смогли бы увидеть работу атрибутов выравнивания текста.
Чтобы устранить эту неприятность, а также сделать таблицу более красивой, где текст в разных ячейках не сливается в одну строку, можно использовать следующие атрибуты:
- cellpadding — задаёт отступ от границы ячейки до текста
- cellspacing — задаёт отступ между ячейками и от ячеек до границы таблицы
Чтобы лучше понять, как это работает, посмотрите рисунок:

Для лучшего понимания посмотрите видео (выше) и изучите курс о вёрстке сайтов.
Выравнивание текста в ячейках таблицы
Как сделать так, чтобы текст в ячейках таблицы был ровно посередине? Чем можно заменить атрибут text-valign:middle . Ячейки с id=td_est, > были одинаковые по высоте. text-valign:middle; не помогает. Вот код html:
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.5.24.43458
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Выравнивание текста в HTML с применением стилей CSS
Разрабатывая сайты, не раз сталкиваешься с однотипными задачами по типу выравнивание текста по горизонтали, и более сложной, как выровнять текст или блок по вертикали.
Вариантов решить задачу предостаточно, но в данной статье, я собрал наиболее понравившиеся с применением HTML и стилей CSS.
Выравнивание текста по горизонтали HTML & CSS
Когда я начинал изучать HTML, чтобы выровнять текст по горизонтали, нужно было обернуть объект в тег <center> , а если по правому или левому краю, то <p align=»right»> или <p align=»left»> соответственно.
С приходом стилей CSS, подобные теги уже уходят в архив и если и применяются, то в крайне исключительных случаях.
Выровнять текст по правому краю тегом «text-aling:right;»
Выровнять текст по левому краю тегом «text-aling:left;»
По умолчанию, текст изначально выровнен по левому краю, но иногда приходится явно указывать это.
Код HTML:
Выравнивание текста по центру тегом «text-aling:center;»
Если хотим сделать какой то заголовок, который должен располагаться по центру, используем следующий вариант:
Как выровнять текст по ширине тегом «text-aling:justify;»
Одно время было принято размещать текст в статье по всей ширине страницы. Если углубиться в вопрос, то достигается это при помощи увеличения пробелов между словами, а в CSS при помощи text-aling:justify; .
Выравнивание таблицы созданной в HTML
Рассмотрим ситуацию, в которой нужно центрировать созданную в HTML таблицу на экране или внутри блока. Отличный способ использовать margin: 10px auto; . Тем самым мы говорим, что сверху и снизу должен быть отступ 10px, а по краям, рассчитывается автоматически, поэтому таблица располагается по центру.
Теперь обратимся к ячейкам таблицы и расположим текст для наглядности по разным краям.
И снова, можно прописать для каждой ячейки <td valign=»center» align=»center»>Текст по центру ячейки</td> , где
- valign=»center» — выравнивание по вертикали,
- align=»center» — выравнивание по горизонтали,
но что делать, если появилась необходимость изменить дизайн. Заново переписывать каждый пункт? Поэтому снова воспользуемся CSS и присвоим классы к ячейкам.
Как выровнять текст в таблице по правому краю
Как выровнять текст в таблице по левому краю
Как выровнять текст в таблице по ширине
Как выровнять текст в таблице по центру
Выравнивание блока «div» по центру используя CSS
Рассмотрим несколько вариантов выравнивания блока div относительно родительского блока.
В ситуации, когда дочерний блок div не имеет размеров, достаточно сделать так:
Это самый простой случай. В практике такое встречается, но не так часто как рассмотренные ниже примеры.
Как выровнять блок «div» определенной ширины
Предположим, у нас есть дочерний блок div с установленной шириной. В этом случае, самый простой способ центрировать блок, задать ему margin: auto , рассмотренный ранее.
Как выровнять внутренний блок «div»
Еще один способ, использовать относительное позиционирование.
Как выровнять несколько блоков «div» относительно родительского
Создадим нечто менюшки на сайте. В этом случае, у нас будет несколько блоков div , которые нужно будет центрировать относительно родительского блока.
Вариантов применения может быть масса, но для общего понимания происходящего и неплохих начальных знаний чтобы сделать выравнивание и текста и блоков по горизонтали, считаю информации достаточно.
Выравнивание текста по вертикали HTML & CSS
Куда большую проблему, особенно для начинающих, доставляет необходимость вертикального выравнивания тексте. Необходимость выровнять текст по вертикали, в верстке встречается при:
- создании различных дизайнов кнопок;
- выравнивании разной величины блоков находящихся на одной линии;
- вертикальное выравнивание текстов, с разным количеством строчке;
- и еще в 100500 случаях.
Ниже приведу самые распространенные способы для центрирования по вертикали, ознакомьтесь и выберите наиболее подходящий в вашем случае.
Вертикальное центрирование текста с помощью тега «line-height»
Приведу пример создания кнопки стилями CSS.
Самые главные строчки, которые изучаем в данном примере, это height: 40px; и line-height: 40px; . Height, это высота кнопки, а тег line-height , указывает на межстрочный интервал сверху и снизу. В результате, название кнопки располагается по центру.
Выравнивание блока по вертикали внутри родительского блока с применением отрицательного «margin»
В том случае, если высота родительского блока известна, может помочь следующая вариация.
Вертикальное выравнивание по типу таблицы
Вертикальное выравнивание блока тегом «transform»
В том случае если не известен размер родительского блока, можно сделать такой трюк:
Выравнивание по вертикали с использованием «display:flex»
На сегодняшний день, самый лучший способ центрирования текста по вертикали в CSS, использование flex-верстки. Все что нужно сделать, это задать родительскому блоку тег display: flex и указать свойства align-items и justify-items .
Теперь вы знаете как выровнять текст в CSS. Материал получился объемный, но зато очень полезный. Выравнивание текста и блоков посредством CSS, первостепенные знания, без которых не получится адекватно сверстать сайт.
Name already in use
Frontend / htmlacademy / основы html / Tables.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
1 contributor
Users who have contributed to this file
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
Знакомство с таблицами
Простейшая таблица описывается с помощью трёх тегов:
‘table’ обозначает таблицу.
‘tr’ расшифровывается как «table row», обозначает строку таблицы.
‘td’ расшифровывается как «table data», обозначает ячейку внутри строки таблицы.
Теги ‘td’ располагаются внутри тегов ‘tr’, а те, в свою очередь, внутри ‘table’. Почти всё текстовое содержимое таблицы размещается внутри тегов ‘td’.
В простейшей таблице в каждой строке должно быть одинаковое количество ячеек, то есть внутри всех ‘tr’ должно быть одинаковое количество ‘td’.
Задаём рамки с помощью CSS
Вы научились создавать простые таблицы, добавлять в них любое количество строк и столбцов. Теперь пришло время оформить эти таблицы.
Таблицы в предыдущих заданиях отображались с рамками по умолчанию. Такие рамки отображаются, если у тега ‘table’ задан атрибут border с ненулевым значением.
Но с помощью атрибута border гибко управлять рамками не получается. С его помощью можно только изменять их толщину.
Поэтому мы будем учиться использовать CSS. С помощью CSS-свойства border можно задавать как внешние рамки таблицы, так и рамки каждой ячейки.
Улучшаем отображение рамок
Мы задали рамки таблицы с помощью CSS, но они не так хороши, как хотелось бы. По умолчанию браузер рисует рамки таблицы и рамки отдельных ячеек раздельно, это отлично видно на примере.
Чтобы избавиться от таких двойных рамок, используется CSS-свойство таблицы border-collapse. Вот так:
Значение collapse убирает двойные рамки: cхлопываются рамки соседних ячеек, а также рамки ячеек и внешняя рамка таблицы. При этом внешняя рамка таблицы может исчезнуть, и чтобы её вернуть, можно увеличить её ширину.
Горизонтальные и вертикальные рамки
Иногда требуется, чтобы рамки ячеек в таблице отображались не полностью. Например, чтобы отображалась только нижняя рамка ячеек, тогда таблица получается расчерченной по горизонтали. Аналогично, если отображать только боковые рамки ячеек, то таблица получается разбитой на столбцы.
Такие эффекты легко достигаются с помощью CSS. Для этого необходимо использовать не свойство border, которое задаёт рамки для всех сторон ячейки, а одно из свойств:
border-top,
border-right,
border-bottom,
border-left.
Эти свойства задают отображение только одной рамки ячейки: верхней, правой, нижней или левой соответственно.
Отступы внутри ячеек
Вы освоили простейшие приёмы для работы с рамками таблиц. Наша таблица уже смотрится аккуратно, но содержимое ячеек прилипает к рамкам. Если добавить отступы внутри ячеек, то информация будет восприниматься намного лучше.
Отступы внутри ячеек можно добавлять с помощью атрибута cellpadding тега ‘table’. Но лучше его не использовать, а задавать отступы с помощью CSS.
CSS-свойство padding задаёт «внутренние отступы элемента» со всех сторон. Можно задавать отступы для каждой из сторон отдельно, используя свойства:
Например, чтобы задать у ячеек все отступы в 10 пикселей, а отступ слева в 20 пикселей, нужно написать такой CSS-код:
Отступы между ячейками
Большинство задач по оформлению таблиц решаются с помощью работы с рамками, отступами внутри ячеек, изменения цвета фона ячеек.
Помимо внутренних отступов можно задавать отступы между ячейками таблицы.
Отступы между ячейками не работают с border-collapse: collapse, что достаточно логично, ведь рамки ячеек в этом режиме «склеены» и их не разорвать.
Поэтому в этом задании мы используем border-collapse: separate, которое «расклеивает» ячейки. На самом деле это значение по умолчанию, а мы используем его только для наглядности. Если удалить свойство border-collapse, то результат не изменится, ячейки будут отображаться раздельно.
Отступы между ячейками можно задать:
с помощью атрибута cellspacing тега ‘table’
или c помощью CSS-свойства border-spacing.
Отметим, что свойство border-spacing задаётся для таблицы, в отличие от padding, которое задаётся для ячеек.
Испытание: простая, но аккуратная таблица
Обычно в таблицах выделяют названия столбцов или строк. В HTML для этого предусмотрен специальный тег ‘th’, который расшифровывается как «table header» и обозначает ячейку-заголовок. Тег ‘th’ аналогичен ‘td’, он так же должен располагаться внутри ‘tr’, для него стилями можно задавать все те же свойства.
По умолчанию текст внутри ‘th’ выделяется жирным и выравнивается по центру ячейки.
Тег ‘caption’ должен размещаться внутри тега ‘table’, причём непосредственно внутри него и первым, до остальных вложенных тегов. Вот так:
Тег заголовка идёт первым внутри таблицы, но с помощью CSS можно переместить заголовок таблицы в любое место: сверху или снизу таблицы, по центру, справа или слева.
По вертикали заголовок таблицы перемещается CSS-свойством caption-side со значениями top и bottom, которые обозначают до и после таблицы соответственно.
По горизонтали заголовок таблицы выравнивается CSS-свойством text-align со значениями left, right и center.
Начнём с объединения ячеек по горизонтали. Чтобы объединить ячейки по горизонтали, необходимо использовать атрибут colspan у тегов ‘th’ или ‘td’.
Когда вы задаёте ячейке атрибут colspan со значением 2, то ячейка как бы «растягивается» на ячейку справа, но та ячейка не исчезает, а отодвигается и в таблице появляется новый столбец. Чтобы удалить его, нужно удалить ячейку, которая находится справа от «растянутой».
Объединение ячеек по вертикали немного сложнее. Оно осуществляется с помощью атрибута rowspan у тега ‘td’ или ‘th’.
Когда вы задаёте ячейке атрибут rowspan со значением 2, то ячейка как бы «растягивается» на следующую строку. При этом ячейка, которая была под «растянутой» отодвигается в своей же строке вправо, что добавляет в таблицу лишний столбец. Удалив ячейку, которая была под «растянутой» мы избавимся от этого столбца.
Испытание: таблица посложнее
Выравнивание содержимого в ячейках
Содержимое ячеек можно выравнивать по горизонтали и по вертикали с помощью CSS.
За выравнивание по горизонтали отвечает CSS-свойство text-align. Чаще всего используются значения left, center и right.
За выравнивание по вертикали отвечает CSS-свойство vertical-align. Чаще всего используются значения top, middle и bottom.
На самом деле, значений у обоих свойств больше, но в случае с ячейками нас интересуют только перечисленные.
Чтобы задать выравнивание содержимого ячеек, надо в стилях указать:
Эти стили повлияют на все ячейки. Чтобы задать выравнивание только в определённых ячейках, нужно назначить им классы и определить стили для классов.
Таблицы можно раскрашивать, задавая цвет фона ячеек, цвет текста в ячейках, а также цвет рамок. Можно задавать и фоновые изображения, но это мы разберём в последующих курсах.
Цветами можно управлять с помощью этих свойств:
background-color — задаёт цвет фона,
color — цвет текста,
border-color — цвет рамок.
Чтобы задать цвета для ячейки в CSS, нужен такой код:
Задаём размеры таблицы
По умолчанию ширина и высота таблицы зависит от содержимого и отступов внутри ячеек. Чем меньше содержимого, тем меньше размеры таблицы.
С помощью CSS можно управлять размерами таблицы, задавать желаемую ширину и высоту. Также размерами можно управлять с помощью атрибутов таблицы, но мы рассмотрим только CSS.
Стоит отметить, что у таблицы есть минимальные размеры, которые зависят от содержания, меньше которых она не сожмётся, какое бы значение ширины или высоты ни задавалось.
Ширина таблицы задаётся с помощью CSS-свойства width, а высота с помощью свойства height, например:
Размеры таблицы можно задавать как в абсолютных единицах, например, в пикселях — 20px, так и в относительных, в процентах — 20%.
При использовании процентов размеры таблицы будут вычисляться с учётом размеров родительского элемента, в нашем случае окна мини-браузера.
Особое значение auto включает расчёт размеров по умолчанию. Например, width: auto; или height: auto;.
Важное замечание. Проценты при задании высоты обычно не работают.
Задаём размеры отдельных ячеек и столбцов
Размеры ячеек и столбцов тоже можно задавать вручную, особенно если вам не нравится, как браузер распределил ширину колонок. Размеры ячеек задаются точно так же, как и размеры таблицы: с помощью CSS-свойств width и height.
Есть два варианта добавления стилей ячейкам:
Назначать ячейкам уникальные имена классов, например, class=»cell-11″, и применять стили для этих классов.
Использовать атрибут style, внутри которого можно писать CSS-код.
Пример второго варианта:
К счастью, редко нужно задавать размеры каждой ячейки. Обычно размеры ячеек прописывают, когда надо вручную установить ширину столбцов таблицы: для этого достаточно задать ширину для каждой ячейки из первой строки.