CSS позволяет установть не только стиль границы таблицы, но и стиль границ отдельных ячеек.
Так как у каждой ячейки свои границы, то между соседними ячейками граница получается
сдвоенная. Но существует возможность объединить границы соседних ячеек в одну. Для этого есть свойство
border-collapse
. Оно принимает значения:
border-collapse: separate
- у каждой ячейки своя граница (по умолчанию)
border-collapse: collapse
- общая граница
border-collapse: inherit
- значение принимается от родительского элемента
Для примера создадим таблицу и зададим рамку ячейкам всех таблиц, которые будут на странице.
Сначала не будем ничего менять, чтобы посмотреть, как таблица будет выглядеть:
Стиль:
1 2 3 4 5 6
|
Страница
Результат данного примера показан ни рис. 1.
![](https://i1.wp.com/webpagesdesign.ru/img/css_border-spacing.png)
Рис. 1. Применение параметра border-spacing
Примечание
Если к тегу
добавлен параметр cellspacing
, то при использовании стилевого атрибута border-spacing
он не принимается во внимание и значение cellspacing
игнорируется. Исключением из этого правила является браузер Internet Explorer, который вообще не понимает свойство border-spacing
.
Таблицы
border-collapse устанавливает, как отображать границы вокруг ячеек таблицы. Этот параметр играет роль, когда для ячеек установлена рамка, тогда в месте стыка ячеек получится линия двойной толщины. Добавление значения collapse заставляет браузер анализировать подобные места в таблице и убирать в ней двойные линии.table-layout определяет, как браузер должен вычислять высоту и ширину ячеек таблицы, основываясь на ее содержимом.border-spacing задает расстояние между границами ячеек в таблице. Атрибут border-spacing не работает в случае, когда для таблицы установлен параметр border-collapse со значением collapse.
Итак, мы изучили с вами наиболее простые действия, которые можно осуществлять с границами таблиц. И теперь таблица выглядит куда более эстетично. Однако, наполнение ячеек прямо таки упирается в границы. Это легко можно исправить, достаточно лишь сделать отступы в ячейках в таблице HTML. И тогда текст внутри рамки, в ячейке, будет более читабельным.
Для того, чтобы сделать отступы в ячейке следует использовать атрибут cellpadding
для тега
. Однако, есть и другой, более предпочтительный вариант: CSS
.
В таком случае отступы задаются с помощью свойства padding
. С его помощью не составит труда сделать отступ там, где надо, то есть – сверху, справа, снизу или слева, используя, соответственно, одно из данных свойств: padding-top
, padding-right
, padding-bottom
и padding-left
.
Можно задать, на сколько именно пикселей должен осуществляться отступ. Приведем пример, в котором нижний отступ будет составлять 20
пикселей, а все остальные будут по 10
. Такой CSS
-код будет выглядеть вот так: Td {
padding: 10px;
padding-bottom: 20px;
}
А полный код стилей на данном этапе: Table {
border: solid 1px blue;
border-collapse: collapse;
}
td {
border: solid 1px blue;
padding: 10px;
padding-bottom: 20px;
}
Результат в браузере:
![](https://i0.wp.com/webshake.ru/uploads/img/7a6d503b66d1c896914513b13a36ae71b1d25cc60de1ae55b8783f1e9c70521c.png)
Отступы между ячейками
Как правило, задачи, связанные с созданием таблиц, можно решить, используя для этого теги, атрибуты и свойства, которые позволяют создавать рамки, отступы в ячейках, а также задать цветовой фон самих ячеек.
Отступы в таблицах бывают не только внутри ячеек. Они могут также присутствовать и между самими ячейками.
Существует две возможности сделать отступы между ячейками:
- с использованием атрибута cellspacing
для тега
.
- с использованием CSS
-свойства border-spacing
.
Надо подчеркнуть, что border-spacing
прописывается для таблицы в целом, в то время как свойство padding
прописывается непосредственно для ячеек.
Давайте глянем на пример: Table {
border: solid 1px blue;
border-collapse: separate;
border-spacing: 5px;
}
td {
border: solid 1px blue;
padding: 10px;
padding-bottom: 20px;
}
И на получившийся результат:
![](https://i0.wp.com/webshake.ru/uploads/img/3819a8a6e9cd3e446b67e3314d98c6c456ea14693b35cbbc904ce8d8a9a219f3.png)
Сразу оговорим, что не надо пытаться сделать такие отступы с помощью border-collapse: collapse
. Ведь при использовании этой опции ячейки «липнут» друг к другу.
А чтобы они находились отдельно друг от друга, следует использовать border-collapse: separate
. Важно понимать, что данное значение является значением по умолчанию. И применяется оно только для того, чтобы наглядно показать, как решается эта задача. Если мы удалим эту строку, то результат в виде отдельно расположенных друг от друга ячеек будет сохранен.
Цель урока:
Знакомство со свойствами таблицы и с принципами табличной верстки CSS
Рассмотрим основные CSS свойства таблицы
border
Свойство рассматривается в одном и включает одновременно несколько свойств:
- BORDER-STYLE (СТИЛЬ ГРАНИЦЫ)
- BORDER-WIDTH (ШИРИНА ГРАНИЦЫ)
- BORDER-COLOR (ЦВЕТ ГРАНИЦЫ)
Существует также сборное правило:
table.collapse{
border-collapse:collapse;
}
table.separate{
border-collapse:separate;
}
Результат:
width и height (высота и ширина таблицы)
Значения:
Пример:
text-align (выравнивание по горизонтали)
Значения:
- center (по центру)
- left (по левому краю)
- right (по правому краю)
- justify (по ширине)
vertical-align (выравнивание по вертикали)
Значения:
- baseline (по базовой линии)
- sub (как подиндекс)
- super (как надиндекс)
- top (по верхнему краю)
- middle (посередине)
- bottom (по нижнему краю)
- % (от высоты межстрочного интервала)
Пример:
padding (внутренние отступы в таблице)
background-color (задний фон) color (цвет текста)
Табличная верстка CSS
Благодаря большому числу свойств таблиц и вариациям их оформления, таблицы долгое время были некоторым станартом верстки веб-страниц. Если сделать границы таблицы невидимыми, то можно использовать ее отдельные ячейки в качестве отдельных блоков сраницы: шапка, меню, подвал и т.п.
Но это не совсем правильно, ведь каждому тегу есть свое назначение, и таблицы не должны были служить для верстки страниц. Однако отсутствие альтернативы сподвигало дизайнеров именно на такой метод верстки.
Сейчас есть другой способ — использование слоев, которые постепенно заменили таблицы в этом виде работы с веб-страницей. Однако и в наше время некоторые дизайнеры успешно используют табличную верстку.
Табличная верстка из двух колонок
Один из самых распространённых способов верстки — две колонки, т.е. страница делится на две части.
- Обычно левая часть — меню и дополнительные элементы, а правая часть — основная, для главного контента.
- В таком случае ширина левой части задается определенным значением, т.е. жестко, а правая часть занимает оставшуюся область страницы.
- В таком случае необходимо задать общую ширину всей таблицы (тега table) в процентах через свойство width (100%), а для первой ячейки (тега td) установить ширину (также свойство width) в пикселах или процентах.
Пример:
задать основной каркас страницы из двух колонок: первая — с фиксированным размером, вторая — на оставшуюся область браузера. Выполнить задание используя CSS стили () Выполнение:
</
head
>
<body
>
<table
id
=
"maket"
cellspacing
=
"0"
>
<tr
>
<td
id
=
"left"
>
1</
td
>
<td
id
=
"right"
>
2</
td
>
</
tr
>
</
table
>
...
|
...
Результат:
- Теперь попробуем визуально отделить две колонки таблицы друг от друга.
Пример:
задать разный фон ячеек (чтобы разделить две колонки друг от друга) и установить расстояние между колонками (разделитель) Выполнение:
Добавим новые свойства стилей:
/* для левой ячейки */
td#left{
width:200px;
background: #ccc; border:1px solid black; /* временно обозначим границы */
}
/* для правой ячейки */
td#right{
background: #fc3; border:1px solid black; /* временно обозначим границы */
}
/* для разделителя */
#razdel{
width: 10px; /* Расстояние между колонками */
}
Все вместе:
</
head
>
<body
>
<table
id
=
"maket"
cellspacing
=
"0"
>
<tr
>
<td
id
=
"left"
>
1</
td
>
<td
id
=
"razdel"
>
td
>
<td
id
=
"right"
>
2</
td
>
</
tr
>
</
table
>
|
Для разделителя была добавлена новая ячейка. Результат:
- Разделитель между колонками можно также сделать менее выделяющимся. Для этого воспользуемся стилями границ.
Пример:
сделать разделитель между колонками таблицы, используя пунктирную линию границы смежных ячеек Выполнение:
Добавим новые свойства границ для ячеек:
/* для левой ячейки */
td#left{
width:200px;
background: #ccc; /* Цвет фона левой колонки */
/* новое */
border-right: 1px dashed #000; /* Параметры правой пунктирной границы */
}
Все вместе:
</
head
>
<body
>
<table
id
=
"maket"
cellspacing
=
"0"
>
<tr
>
<td
id
=
"left"
>
1</
td
>
<td
id
=
"right"
>
2</
td
>
</
tr
>
</
table
>
|
Результат:
Табличная верстка из трех колонок
Существует понятие фиксированного или «резинового» макета верстки.
Фиксированный макет CSS
- При использовании фиксированного макета
ширина всей таблицы задается в пикселях
, и тогда, независимо от разрешения монитора и окна браузера, таблица будет всегда иметь одинаковую ширину.
- В таком случае ширину остальных колонок стоит также сделать фиксированной
.
- Можно не указать ширину одной ячейки, тогда она будет вычислена автоматически, исходя из размеров остальных ячеек и всей таблицы.
Пример:
создать шаблон страницы из трех колонок. Использовать фиксированный макет табличной верстки:
- левая колонка — 150 пикселей;
- средняя колонка — 400 пикселей;
Выполнение:
</
head
>
<body
>
<table
id
=
"maket"
cellspacing
=
"0"
>
<tr
>
<td
id
=
"left"
>
1</
td
>
<td
id
=
"central"
>
2</
td
>
<td
id
=
"right"
>
3</
td
>
</
tr
>
</
table
>
|
Результат:
Резиновый макет
- Ширина таблицы
при использовании «резинового» дизайна устанавливается в % от ширины окна браузера
. Т.о. при изменении окна браузера, изменяются и размеры таблицы.
- Ширина всех ячеек
может устанавливаться в процентах
.
- Второй вариант, когда ширина некоторых ячеек
устанавливается в процентах
, а некоторых — в пикселях
.
Важно:
Сумма ширины всех колонок должна получиться 100%, независимо от ширины таблицы.
Пример:
- левая колонка — 20%;
- средняя колонка — 40%;
- правая колонка — 40%;
Задать фон для колонок и визуально разделить колонки границей.
Выполнение:
</
head
>
<body
>
<table
id
=
"maket"
cellspacing
=
"0"
>
<tr
>
<td
id
=
"left"
>
1</
td
>
<td
id
=
"central"
>
2</
td
>
<td
id
=
"right"
>
3</
td
>
</
tr
>
</
table
>
|
Результат:
Рассмотрим второй вариант, когда ширина центральной колонки автоматически подбирается браузером; примером может служить рисунок:
![](https://i0.wp.com/labs-org.ru/wp-content/uploads/2016/12/1.gif)
Пример:
создать шаблон страницы из трех колонок. Использовать резиновый макет табличной верстки:
- левая колонка — 150 пикселей;
- средняя колонка — 40%;
- правая колонка — 200 пикселей;
Задать фон для колонок и визуально разделить колонки границей.
Выполнение:
</
head
>
<body
>
<table
id
=
"maket"
cellspacing
=
"0"
>
<tr
>
<td
id
=
"left"
>
1</
td
>
<td
id
=
"central"
>
2</
td
>
<td
id
=
"right"
>
3</
td
>
</
tr
>
</
table
>
|
Результат:
Результат будет примерно такой же, только «растягивание» будет происходит за счет центральной колонки.
Использование вложенной таблицы в резиновом макете
Если ширина двух колонок устанавливается в процентах, а третьей - в пикселях, обойтись одной таблицей не получится
. Так, если ширина всей таблицы равна 100 процентов, первой колонки - 200 пикселей, а оставшихся колонок по 20 процентов, то простое вычисление показывает, что размер первой колонки получается равным 60 процентов. В таком случае заданное значение в пикселях браузером не воспримется, а размер будет установлен в процентах.
![](https://i2.wp.com/labs-org.ru/wp-content/uploads/2016/12/1-1.gif)
- Исходная таблица создается с двумя ячейками. Ширина таблицы задается в процентах
.
- Для левой ячейки
(первой колонки) устанавливается ширина в пикселях
.
- Ширина правой ячейки
(основа для других колонок) не указывается
. Внутрь этой ячейки вставляется вторая таблица, тоже состоящая из двух ячеек.
- У ячеек вложенной таблицы ширина устанавливается в процентах
.
- Ширина внутренней таблицы должна быть установлена в 100 процентов
, чтобы эта таблица занимала все свободное пространство во внешней таблице.
- Ширина центральной и правой колонки вычисляется относительно ширины ячейки, а не внешней таблицы в целом.
Пример:
создать шаблон страницы из трех колонок. Использовать резиновый макет с вложенной таблицей:
- левая колонка — 150 пикселей;
- средняя колонка — 60%;
- правая колонка — 40%;
Задать фон для колонок.
Выполнение:
Атрибуты тегов cellpadding и cellspacing здесь необходимы, для того, чтобы не было «зазора» между таблицами. Результат:
Всем привет! Итак, теперь вы умеете создавать элементарные таблицы, состоящие из такого количества строк и столбцов, которое необходимо. Неплохо, неплохо. А теперь давайте поговорим про оформление этих таблиц.
В прошлом уроке таблицы отображались без границ. И, согласитесь, выглядит так себе, даже и табличкой-то не назовёшь. Чтобы сделать границы таблицы в HTML, следует добавить к тегу
атрибут border
, придав ему значение отличное от нуля.
Итак, давайте сделаем границы для таблицы. Например, для уже имеющейся у нас:
Верхняя левая ячейка | Верхняя правая ячейка |
Нижняя левая ячейка | Нижняя правая ячейка |
Результат в браузере:
![](https://i1.wp.com/webshake.ru/uploads/img/72e41123feb5b764f7ef03059dd24edd86067576a832931785798df9e3c32cac.png)
Как убрать границы таблицы
В свою очередь, чтобы убрать границы таблицы HTML, или ещё можно сказать, сделать их невидимыми, нужно атрибуту border
задать значение 0
. После этих нехитрых действий рамка уберётся.
Атрибут позволяет создать, но не управлять границами. Он позволяет лишь изменять их толщину.
Поэтому, сейчас речь пойдет о CSS
, свойства которого делают возможным с помощью border
создавать различные границы, как внутри каждой ячейки, так и внешние, вокруг таблицы в целом.
Давайте посмотрим как применять CSS для создания внешних и внутренних границ таблицы.
Для этого удалим у нашей таблицы атрибут border и добавим стили:
Пример таблицы
Верхняя левая ячейка |
Верхняя правая ячейка |
Нижняя левая ячейка |
Нижняя правая ячейка |
Результат в браузере:
Теперь давайте добавим границы и для каждой ячейки. Для этого просто дополним стили:
Результат в браузере:
![](https://i1.wp.com/webshake.ru/uploads/img/af850965b9c67bbc1bd3f1bc035348685e2ad4fe345b3d67ba7734673f8fabc3.png)
Как убрать отступы между ячейками в таблице HTML
Согласитесь, что граница, заданная с помощью CSS, имеет не такой внешний вид, как хотелось бы. Бесспорно, с точки зрения эстетики, есть над чем работать. На странице браузера можно увидеть, что по умолчанию он отображает границы таблиц и ячеек раздельно. Пример это явно демонстрирует.
Однако, от таких вот границ, которые именуются двойными, вполне можно избавиться, если использовать CSS-свойство border-collapse. На практике это выглядит вот так: Table {
border: solid 1px blue;
border-collapse: collapse;
}
...
Как результат - убирается расстояние между ячейками:
Значение collapse, приписанное атрибуту border, позволяет убрать двойные рамки. Как можно увидеть, результатом является "схлопывание" границ ячеек, расположенных рядом, а также рамок ячеек и внешней рамки таблицы. Что касается последней, то она может удалиться и вовсе. И если есть необходимость в ее отображении, необходимо увеличивать ее ширину. Таким образом мы избавились от разделителей в таблице. А в следующем уроке мы поговорим о том, как можно задавать вертикальные и горизонтальные границы. Всем удачи!
Новое
Как востановить менструальный цикл после родов:
|
|
|