Определяет содержимое таблицы.
|
| Определяет наименование таблицы.
|
|
| Определяет заголовочную ячейку таблицы.
|
---|
|
Определяет строку таблицы.
|
|
| Определяет ячейку данных таблицы.
|
Используется для содержания заголовка группы в таблице (шапка таблицы).
|
| |
Используется для содержания "тела" таблицы.
|
|
Используется для содержания "подвала" таблицы (футер).
|
| Определяет заданные свойства столбцов для каждого столбца в пределах тега .
|
| Определяет группу столбцов в таблице.
|
Работа с отступами в таблице
Использование внутренних отступов в таблице
Отступы в таблице
1 |
2 |
3 |
4 |
2 | | | |
3 | | | |
4 | | | |
В данном примере мы:
- Разместили таблицу по центру, используя прием центровки по горизонитали внешними отступами (margin : 0 auto
).
- Для наименования таблицы (тег ) мы установили внутренний отступ снизу равный 19
пикселей. Надеюсь, Вас не смущают неровные числа:)
Результат нашего примера:
Промежуток между ячейками
После рассмотренного выше примера, вы могли заметить, что у нас остался промежуток между всеми ячейками таблицы. Давайте рассмотрим, как убрать промежуток между ячейками таблицы, либо его увеличить.
Чтобы задать расстояние между границами соседних ячеек необходимо использовать свойство CSS - border-spacing .
Изменение промежутка между таблицами
border-spacing: 30px 10px;
1 |
2 |
3 |
2 | | |
3 | | |
border-spacing: 0;
1 |
2 |
3 |
2 | | |
3 | | |
border-spacing:0.2em;
1 |
2 |
3 |
2 | | |
3 | | |
В данном примере мы:
- float : left
). Если вы пропустили тему плавающих элементов, то вы всегда можете к ней вернуться в этом учебнике - « ».
- Кроме того установили для таблиц внешний отступ справа равный 30px
и установили вертикальное выравнивание таблиц (верх элемента выравнивается по верху самого высокого элемента). Мы еще вернемся к подробному рассмотрению этого свойства в этой статье.
- ) – жирное начертание.
- Для ячеек таблицы (заголовочные и ячейки данных) мы установили сплошную границу размером 1
пиксель шестнадцатеричным цветом #F50
и установили внутренние отступы размером 19
пикселей для всех сторон.
- Для первой таблицы с классом .first
мы установили промежуток между ячейками таблицы (свойство border-spacing) равный 30px 10px
, для второй таблицы с классом .second
равный нулю, для третей таблицы с классом .third
равный 0.2em
.
Обращаю Ваше внимание, что если в свойстве border-spacing указано только одно значение длины, то оно указывает интервалы, как по горизонтали, так и вертикали, а если указаны два значения длины, то первое определяет горизонтальное расстояние, а второе вертикальное.
Расстояние между границами соседних ячеек допускается указывать в единицах измерения CSS (px, cm, em и др). Отрицательные значения не допускаются.
Результат нашего примера:
Отображение границ вокруг ячеек таблицы
Вы можете сказать: - так, мы убрали промежуток между ячейками, используя свойство border-spacing со значением 0
, но почему у нас теперь границы у ячеек то пересекаются?
Двойные границы образуются из-за того, что нижняя граница одной ячейки добавляется к верхней границе ячейки, которая находится под ней, аналогичная ситуация происходит по бокам ячеек и это логично с точки зрения отображения таблицы, но к счастью есть способ, сообщить браузеру, что мы не хотим видеть такое развязное поведение границ ячеек.
Для этого необходимо использовать CSS свойство border-collapse . Как не странно, но использование свойства border-collapse со значением collapse
является лучшим способом как можно убрать промежуток между ячейками и при этом не получить двойных границ между ними.
Рассмотрим сравнение поведения границ при использовании свойства border-spacing со значением 0
и свойства border-collapse со значением collapse
:
Пример отображения границ вокруг ячеек таблицы
border-spacing: 0;
1 |
2 |
3 |
2 | | |
3 | | |
border-collapse: collapse;
1 |
2 |
3 |
2 | | |
3 | | |
В данном примере мы:
- Сделали наши таблицы плавающими и сместили по левому краю (float : left
), установили для них внешний отступ справа равный 30px
.
- Установили для наименования таблицы (тег ) – жирное начертание.
- Для ячеек таблицы (заголовочные и ячейки данных) мы установили сплошную границу размером 5
пикселей шестнадцатеричным цветом #F50
и установили фиксированную ширину 50px
и высоту 75
пикселей.
- Для первой таблицы с классом .first
мы установили промежуток между ячейками таблицы равный нулю (border-spacing
: 0
;), а для второй таблицы с классом .second
установили свойство border-collapse со значением collapse
, которое объединяет границы ячеек в одну, когда это возможно.
Результат нашего примера:
Поведение пустых ячеек
Силами CSS можно установить, следует ли отображать границы и фон пустых ячеек в таблице или нет. За это поведение отвечает свойство empty-cells , которое по умолчанию, как вы могли заметить из предыдущих примеров, отображает пустые ячейки.
Давайте перейдем к примеру:
Пример отображения пустых ячеек таблицы
empty-cells: show;
1 |
2 |
3 |
2 | |
☺ |
3 |
☺ | |
empty-cells: hide;
1 |
2 |
3 |
2 | |
☺ |
3 |
☺ | |
Понять, как действует свойство empty-cells из этого примера очень просто, если для него установлено значение hide
, то пустые ячейки и фон в них будут скрыты, если установлено значение show
(по умолчанию), то они будут отображаться.
Расположение заголовка таблицы
Давайте рассмотрим еще одно простое свойство для стилизации таблиц - caption-side , которое устанавливает расположение заголовка таблицы (над или под таблицей). По умолчанию свойство caption-side имеет значение top
, которое помещает заголовок над таблицей. Для того, чтобы поместить заголовок под таблицу необходим использовать свойство со значение bottom
.
Давайте рассмотрим пример использования этого свойства:
Пример использования свойства caption-side
Заголовок над таблицей
Наименование |
Цена |
Рыба |
350 рублей |
Мясо |
250 рублей |
Заголовок под таблицей
Наименование |
Цена |
Рыба |
350 рублей |
Мясо |
250 рублей |
В данном примере мы создали два класса
, которые управляют расположением заголовка таблицы. Первый класс (.topCaption
) помещает заголовок таблицы над ней, мы применили его к первой таблице, а второй класс (.bottomCaption
) помещает заголовок таблицы под ней, мы применили его ко второй таблице. Класс .topCaption
имеет значение свойства caption-side по умолчанию и создан для демонстрации.
Результат нашего примера:
Горизонтальное и вертикальное выравнивание
В большинстве случаев при работе с таблицами вам придется настраивать выравнивание содержимого внутри заголовочных ячеек и ячеек данных. Свойство text-align применяется для горизонтального выравнивания по аналогии с любой текстовой информацией. Применение этого свойства для текста мы рассматривали ранее в статье « ».
Чтобы установить выравнивание для содержимого в ячейках, необходимо использовать специальные ключевые слова со свойством text-align . Рассмотрим применение ключевых слов этого свойства на следующем примере.
Пример горизонтального выравнивания в таблице
Значение |
Описание |
left |
Выравнивает текст ячейки влево. Это значение по умолчанию (если направление текста слева направо). |
right |
Выравнивает текст ячейки вправо. Это значение по умолчанию (если направление текста справа налево). |
center |
Выравнивает текст ячейки по центру. |
justify |
Растягивает линии так, что каждая линия имеет одинаковую ширину (растягивает текст ячейки по ширине). |
В этом примере мы создали четыре класса
, которые задают различное горизонтальное выравнивание в ячейках и применили их по порядку к строкам таблицы. Значение в ячейке соответствует значению свойства text-align
Результат нашего примера:
Кроме горизонтального выравнивания вы также можете определить и вертикальное выравнивание в ячейках таблицы с помощью свойства vertical-align .
Обращаю Ваше внимание, что при работе с ячейками таблицы применяются только следующие значения * этого свойства:
*
- Значения sub
, super
, text-top
, text-bottom
, length
и %
, примененные к ячейке таблицы будут вести себя как при использовании значения baseline
.
Рассмотрим пример использования:
Пример вертикального выравнивания в таблице
Значение |
Описание |
baseline |
Выравнивает базовую линию ячейки по базовой линии родителя. Это значение по умолчанию. |
top |
Выравнивает содержимое ячейки вертикально по верхнему краю. |
middle |
Выравнивает содержимое ячейки вертикально по середине. |
bottom |
Выравнивает содержимое ячейки вертикально по нижнему краю. |
В этом примере мы создали четыре класса
, которые задают различное вертикальное выравнивание в ячейках и применили их по порядку к строкам таблицы. Значение в ячейке соответствует значению свойства vertical-align , которое было применено к этой строке.
Алгоритм размещения макета таблицы браузером
В CSS по умолчанию используется алгоритм автоматического размещения макета таблицы браузером. В этом случае ширина столбца задается самым широким неразрывным содержимым ячейки
. Данный алгоритм может быть в некоторых случаях медленным, так как браузер должен прочитать все содержимое в таблице, прежде чем определить её окончательный макет.
Чтобы изменить тип размещения макета таблицы браузером с автоматического
на фиксированный
, необходимо использовать CSS свойство table-layout со значением fixed
.
В этом случае горизонтальное размещение зависит только от ширины таблицы и ширины столбцов, а не от содержимого ячеек.
Браузер начинает отображать таблицу сразу после того, как получена первая строка. Как следствие, фиксированный алгоритм, позволяет создавать макет такой таблицы быстрее, чем используя автоматический вариант. При работе с большими таблицами в целях увеличения производительности вы можете использовать фиксированный алгоритм.
Давайте рассмотрим применение этого свойства на следующем примере:
Пример использования свойства table-layout
table-layout: auto;
Наименование |
2009 |
2010 |
2011 |
2012 |
2013 |
2014 |
2015 |
2016 |
Пшеница |
125 |
215 |
2540 |
33287 |
695878 |
1222222 |
125840000 |
125 |
table-layout: fixed;
Наименование |
2009 |
2010 |
2011 |
2012 |
2013 |
2014 |
2015 |
2016 |
Пшеница |
125 |
215 |
2540 |
33287 |
695878 |
1222222 |
125840000 |
125 |
В данном примере мы:
Стилизация строк и столбцов таблицы
Мы с Вами частично уже затрагивали методы стилизации строк и столбцов таблицы в статье « ». В этой статье мы рассматривали применение группового псевдокласса , который позволяет чередовать стили строк в таблицах с использованием значений even
(четный
) и odd
(нечетный
), либо по элементарной математической формуле
.
Давайте повторим ранее рассмотренные методы и познакомимся с новыми способами стилизации строк и столбцов в таблицах. Перейдем к примерам.
Пример использования псевдокласса:nth-child с таблицами
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
2 | | | | | | |
| | | | | | |
3 | | | | | | |
| | | | | | |
4 | | | | | | |
| | | | | | |
В данном примере мы:
Результат нашего примера:
Перейдем к следующему примеру, в котором рассмотрим варианты стилизации строк таблицы.
Пример стилизации строк в таблицах
Услуга |
Стоимость |
Сумма |
15 000 |
1 |
1 000 |
2 |
2 000 |
3 |
3 000 |
4 |
4 000 |
5 |
5 000 |
В этом примере мы:
- Установили ширину таблицы в 100%
от ширины родительского элемента, для заголовочных и ячеек данных установили сплошную границу шириной 1px
.
- Установили для элемента («подвал» таблицы) цвет заднего фона – coral
, для элемента («шапка» таблицы) установили цвет заднего фона silver
.
- Для элементов
, которые находятся внутри элемента (тело таблицы) установили изменение цвета заднего фона при наведении (псевдокласс :hover) c белого
на цвет khaki
(подсвечивается вся строка).
Результат нашего примера: Рис. 153 Пример стилизации строк в таблицах
Следующий пример рассматривает применение скругления углов к ячейкам таблицы (свойство ).
Пример скругления углов ячейки
В этом примере мы:
- Отцентровали таблицу внешними отступами, задали для заголовочных ячеек ширину и высоту 50px
, указали прозрачную
границу 5
пикселей.
- Установили, что при наведении (псевдокласс :hover) на заголовочную ячейку она получает задний фон синего
цвета, оранжевый
цвет текста, границу оранжевого
цвета 5
пикселей и радиус скругления 100%
.
- Прозрачная граница
необходима для того, чтобы зарезервировать место под границу, которая будет отображена при наведении, если этого не сделать таблица будет «прыгать».
Результат нашего примера:
Следующий пример затрагивает использование HTML элементов и и их стилизации.
Пример подсветки колонок таблицы
№ заявки |
Услуга |
Цена, руб. |
Итого |
1 |
Пение |
6 000 |
6 000 |
2 |
Мытье |
2 000 |
2 000 |
3 |
Уборка |
1 000 |
1 000 |
4 |
Нытьё |
1 500 |
1 500 |
5 |
Чтение |
3 000 |
3 000 |
В этом примере мы:
Результат нашего примера:
Ну и заключительный пример, который довольно сложен для понимания и требует продвинутых знаний в CSS, так как затрагивает будущие темы, планируемые к подробному изучению в рамках этого курса.
В предыдущем примере мы поняли, что к HTML элементу можно применить только одно CSS свойство – цвет заднего фона (background-color), но при этом задать цвет заднего фона при наведении (псевдокласс :hover) на этот элемент напрямую нельзя. В этом примере мы рассмотрим, как подсветить столбец таблицы, используя только CSS.
Пример подсветки колонок и строк таблицы при наведении
№ заявки |
Услуга |
Цена, руб. |
Итого |
1 |
Пение |
6 000 |
6 000 |
2 |
Мытье |
2 000 |
2 000 |
3 |
Уборка |
1 000 |
1 000 |
4 |
Нытьё |
1 500 |
1 500 |
5 |
Чтение |
3 000 |
3 000 |
В этом примере мы:
- Устанавливаем, что наша таблица занимает 100%
от родительского элемента, ячейки таблицы занимают 25%
от родительского элемента и имеют сплошную границу 1
пиксель зеленого цвета, высота заголовочных и ячеек данных составляет 45px
. Промежуток между ячейками мы убрали, используя свойство border-collapse со значением
.
- И так, используя псевдоэлемент ::after добавляем содержимое после каждого элемента
при наведении. Псевдоэлемент ::after обязательно используется вместе со свойством content , благодаря которому мы вставляем блочный элемент, который имеет задний фон цвета forestgreen
и имеет абсолютное позиционирование
.
- Абсолютное позиционирование здесь необходимо для смещения элемента относительно заданного края его предка, при этом предок должен иметь значение position отличное от установленного по умолчанию - static
, иначе отсчёт будет вестись относительно, указанного края окна браузера, по этой причине мы установили для таблицы относительное позиционирование
(relative
).
- Установили для нашего сгенерированного блока свойство top , которое указывает направление смещения позиционированного элемента от верхнего края и свойство bottom , которое указывает направление смещения позиционированного элемента от нижнего края. Для обоих свойств указали значение 0
, таким образом, блок будет полностью занимать элемент от низа и верха таблицы, ширину этого блока задали 25%
это значение соответствует значению ширины самой ячейки.
- И заключительное свойство, которое мы установили для этого блока: z-index со значением "-1"
оно определяет порядок расположения позиционированных элементов по оси Z
. Это свойство необходимо, чтобы текст находился впереди этого блока, а не за ним, если не задать значение меньше нуля, то блок будет закрывать текст.
Результат нашего примера:
Если Вам на этом этапе изучения не понятен процесс позиционирование элементов, то не расстраивайтесь это сложная для понимания тема, которую мы к тому же не рассматривали, но обязательно рассмотрим в следующей статье учебника "Позиционирование элементов в CSS ".
Вопросы и задачи по теме
Перед тем как перейти к изучению следующей темы пройдите практическое задание:
Если у Вас возникают трудности при выполнении практического задания, Вы всегда можете открыть пример в отдельном окне и проинспектировать страницу, чтобы понять какой код CSS был использован.
2016-2020 Денис Большаков, замечания и предложения по работе сайта Вы можете направить по адресу сайт@gmail.com
Задает расстояние между границами ячеек в таблице. Атрибут border-spacing
не работает в случае, когда для таблицы установлен параметр border-collapse
со значением collapse
.
Синтаксис
border-spacing: значение [значение]
Аргументы
Одно значение устанавливает одновременно расстояние по вертикали и горизонтали между границами ячеек. Если аргументов два, то первое определяет горизонтальное расстояние, а второе - вертикальное.
border-spacing
Результат данного примера показан ни рис. 1.
Рис. 1. Применение параметра border-spacing
Примечание
Если к тегу
добавлен параметр cellspacing
, то при использовании стилевого атрибута border-spacing
он не принимается во внимание и значение cellspacing
игнорируется. Исключением из этого правила является браузер Internet Explorer, который вообще не понимает свойство border-spacing
.
Таблицы
- border-collapse устанавливает, как отображать границы вокруг ячеек таблицы. Этот параметр играет роль, когда для ячеек установлена рамка, тогда в месте стыка ячеек получится линия двойной толщины. Добавление значения collapse заставляет браузер анализировать подобные места в таблице и убирать в ней двойные линии.
- table-layout определяет, как браузер должен вычислять высоту и ширину ячеек таблицы, основываясь на ее содержимом.
- border-spacing задает расстояние между границами ячеек в таблице. Атрибут border-spacing не работает в случае, когда для таблицы установлен параметр border-collapse со значением collapse.
Похожие публикации
| |
|