Html таблицы
Содержание:
- Создание таблицы в HTML
- Зачем нужны таблицы?
- Горизонтальное и вертикальное выравнивание
- Шапка, тело и подвал HTML таблицы.
- Пустые ячейки
- Монтажные работы
- Nested Tables
- More Examples
- Как закрасить ячейку
- Tables Backgrounds
- Определение особого стиля для таблицы
- Создание простой HTML таблички
- Работа с отступами в таблице
Создание таблицы в HTML
Рассмотрим теги для создания таблицы:
1 2 3 4 5 |
<table> <tr> <td> содержание <td> <tr> <table> |
Результат:
Добавим границу для таблицы — атрибут :
1 2 3 4 5 |
<table border="1"> <tr> <td> содержание <td> <tr> <table> |
Результат:
Создания таблицы начинается с тега (от англ. «таблица»). Тег служит для создания строки. В строке располагаются ячейки — тег . Завершается таблица закрывающим тегом
Или пример таблицы посложнее:
Атрибуты тега TABLE
— таблица влево; – табл. по центру; — табл. вправо. | |
ширина | |
цвета рамки | |
ширина грани рамки | |
внутреннее расстояние до рамки | |
(фон таблицы) |
Важно: Для ячеек-заголовка таблицы используется тег вместо. Браузер размещает содержимое таких ячеек по центру и делает шрифт полужирным
Атрибуты тега TD или TH — ячейки
, , | выравнивание по горизонтали | |
, , , | выравнивание по вертикали | |
число или процент | ширина ячейки | |
цвет | цвет фона | |
файл | файл фона | |
цвет | цвет границы | |
заставляет текст внутри ячейки отображаться без переносов, одной сплошной строкой |
Важно:
- Тег служит для создания заголовка таблицы
- Для группировки заголовочных ячеек используется тег
- Для группировки основного содержимого таблицы используется тег
- Тег определяет нижнюю часть таблицы
Тег заголовка таблицы может иметь атрибут, определяющий расположение заголовка — — со следующими значениями:— заголовок над таблицей,— заголовок под таблицей,— заголовок вверху и выровнен влево,— заголовок вверху и выровнен вправо. К сожалению не все значения «работают» во всех браузерах.
Пример: Создать «каркас» таблицы со всеми тегами группировки
Выполнение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<table border="1"> <caption>таблица<caption> <thead> <tr> <th>Заголовок 1<th><th>3аголовок 2<th> <tr> <thead> <tbody> <tr> <td>содержимое<td><td>содержимое<td> <tr> <tbody> <tfoot> ... <tfoot> <table> |
Лабораторная работа №1: Создайте таблицу по образцу. У таблицы должен быть заголовок и области для группировки (thead — 1-я строка таблицы, tbody — 2-я и 3-я строки таблицы, tfoot — 4-я строка таблицы).
Столбец 1 | Столбец 2 | Столбец 3 | Столбец 4 |
---|---|---|---|
Строка4 Ячейка1 | Строка4 Ячейка2 | Строка4 Ячейка3 | Строка4 Ячейка4 |
Строка2 Ячейка1 | Строка2 Ячейка2 | Строка2 Ячейка3 | Строка2 Ячейка4 |
Строка3 Ячейка1 | Строка3 Ячейка2 | Строка3 Ячейка3 | Строка3 Ячейка4 |
Зачем нужны таблицы?
Первым делом о хорош. Поэтому сперва следует отметить, что с помощью таблиц делать не надо.
Не надо верстать сайты в виде таблицы! Вёрстка сайтов в виде таблицы – это прошлый век.
Сейчас сайты верстают с помощью CSS, но о CSS будет отдельный рассказ.
Таблицы в HTML нужно верстать тогда, когда требуется сверстать таблицу!
Таблицы достаточно часто встречаются в нашей жизни, например, таблица Пифагора, таблица Менделеева, таблица соответствия размеров обуви или блузок и тому подобное. Есть масса информации, которую удобно представлять в виде таблиц.
Поэтому таблицы в HTML используются для вёрстки таблиц. Всё остальное верстается с помощью более приспособленных для этого механизмов отображения информации.
Важно!
все теги при работе с таблицами парные. Поэтому помним, что все теги состоят из пары «открывающий тег» — «закрывающий тег». С таблицами это наиболее актуально. Поэтому закрываем все теги, иначе таблица поплывёт, т.к. вёрстка будет нарушена!
Горизонтальное и вертикальное выравнивание
В большинстве случаев при работе с таблицами вам придется настраивать выравнивание содержимого внутри заголовочных ячеек и ячеек данных. Свойство text-align применяется для горизонтального выравнивания по аналогии с любой текстовой информацией. Применение этого свойства для текста мы рассматривали ранее в статье «Форматирование текста в CSS».
Чтобы установить выравнивание для содержимого в ячейках, необходимо использовать специальные ключевые слова со свойством text-align. Рассмотрим применение ключевых слов этого свойства на следующем примере.
<!DOCTYPE html> <html> <head> <title>Пример горизонтального выравнивания в таблице</title> <style> table { border-collapse: collapse; /* объединяем границы ячеек в одну */ } td, th { border: 1px solid; /* задаем сплошную границу размером 1 пиксель */ } .left { text-align: left; /* выравнивает текст ячейки влево */ } .right { text-align: right; /* выравнивает текст ячейки вправо */ } .center { text-align: center; /* выравнивает текст ячейки по центру */ } .justify { text-align: justify; /* выравнивает текст ячейки по ширине */ } </style> </head> <body> <table> <tr> <th>Значение</th><th>Описание</th> </tr> <tr class = "left"> <td>left</td><td>Выравнивает текст ячейки влево. Это значение по умолчанию (если направление текста слева направо).</td> </tr> <tr class = "right"> <td>right</td><td>Выравнивает текст ячейки вправо. Это значение по умолчанию (если направление текста справа налево).</td> </tr> <tr class = "center"> <td>center</td><td>Выравнивает текст ячейки по центру.</td> </tr> <tr class = "justify"> <td>justify</td><td>Растягивает линии так, что каждая линия имеет одинаковую ширину (растягивает текст ячейки по ширине).</td> </tr> </table> </body> </html>
В этом примере мы создали четыре класса, которые задают различное горизонтальное выравнивание в ячейках и применили их по порядку к строкам таблицы. Значение в ячейке соответствует значению свойства text-align, которое было применено к этой строке.
Результат нашего примера:
Рис. 149 Пример горизонтального выравнивания в таблице.
Кроме горизонтального выравнивания вы также можете определить и вертикальное выравнивание в ячейках таблицы с помощью свойства vertical-align.
Обращаю Ваше внимание, что при работе с ячейками таблицы применяются только следующие значения* этого свойства:
Значение | Описание |
---|---|
baseline | Выравнивает базовую линию ячейки по базовой линии родителя. Это значение по умолчанию. |
top | Выравнивает содержимое ячейки вертикально по верхнему краю. |
middle | Выравнивает содержимое ячейки вертикально по середине. |
bottom | Выравнивает содержимое ячейки вертикально по нижнему краю. |
* — Значения sub, super, text-top, text-bottom, length и %, примененные к ячейке таблицы будут вести себя как при использовании значения baseline.
Рассмотрим пример использования:
<!DOCTYPE html> <html> <head> <title>Пример вертикального выравнивания в таблице</title> <style> table { border-collapse: collapse; /* объединяем границы ячеек в одну */ } td, th { border: 1px solid; /* задаем сплошную границу размером 1 пиксель */ height: 55px; /* задаем высоту ячеек */ } .baseline { vertical-align: baseline; /* выравнивает базовую линию ячейки по базовой линии родителя */ } .top { vertical-align: top; /* выравнивает содержимое ячейки вертикально по верхнему краю */ } .middle { vertical-align: middle; /* выравнивает содержимое ячейки вертикально по середине */ } .bottom { vertical-align: bottom; /* выравнивает содержимое ячейки вертикально по нижнему краю */ } </style> </head> <body> <table> <tr> <th>Значение</th><th>Описание</th> </tr> <tr class = "baseline"> <td>baseline</td><td>Выравнивает базовую линию ячейки по базовой линии родителя. Это значение по умолчанию.</td> </tr> <tr class = "top"> <td>top</td><td>Выравнивает содержимое ячейки вертикально по верхнему краю.</td> </tr> <tr class = "middle"> <td>middle</td><td>Выравнивает содержимое ячейки вертикально по середине.</td> </tr> <tr class = "bottom"> <td>bottom</td><td>Выравнивает содержимое ячейки вертикально по нижнему краю.</td> </tr> </table> </body> </html>
В этом примере мы создали четыре класса, которые задают различное вертикальное выравнивание в ячейках и применили их по порядку к строкам таблицы. Значение в ячейке соответствует значению свойства vertical-align, которое было применено к этой строке.
Рис. 150 Пример вертикального выравнивания в таблице.
Шапка, тело и подвал HTML таблицы.
Как и сам сайт, наша табличка может иметь свои шапку, тело и подвал. И если вы хотите, чтобы ваш код выглядел семантически правильно для поисковых систем. Советую применять эти знания на практике.
Все 3 тега, которые мы будем изучать далее, должны содержать в себе весь контент таблицы. Который условно мы можем разбить на три большие части.
Тег thead — шапка HTML таблицы
Этот тег рекомендуется размещать первым в контенте таблицы. То есть мы заводим этот тег и уже внутри него размещаем заголовочную строку с ячейками.
Фишки тега thead:
- Он должен встречаться только один раз на одну таблицу!
- Независимо от того, где мы его располагаем в таблице — строки, находящиеся в этом теге, будут выводиться в начале таблицы.
Теперь вернёмся к нашей таблице, и давайте первую строку завернём в этот тег:
<table> <caption>Тег thead в таблице</caption> <thead> <tr> <th>Столбец 1</th> <th>Столбец 2</th> <th>Столбец 3</th> <th>Столбец 4</th> </tr> </thead> <tr> <td colspan="3">Строка2 Ячейка1 (соединена с ячейками 2 и 3)</td> <td rowspan="3">Строка2 Ячейка4 (соединена с ячейкой 4 в строках 3 и 4)</td> </tr> <tr> <td colspan="2" rowspan="2">Строка3 Ячейка1 (соединена с ячейкой 2 строки 3 и ячейками 1 и 2 строки 4)</td> <td>Строка3 Ячейка3</td> </tr> <tr> <td>Строка4 Ячейка3</td> </tr> </table>
Визуально он никак не влияет на отображение таблицы, поэтому я не буду выводить результат исполнения кода.
Тег tfoot – подвал HTML таблицы
Хоть это и подвальчик, но помните, что этот тег рекомендуется размещать сразу после тега
.
Фишки тега tfoot:
- Он должен встречаться только один раз на одну таблицу!
- Независимо от того, где мы его располагаем в таблице — строки, находящиеся в этом теге, будут выводиться в конце таблицы.
Давайте мы заведём ещё одну строку в таблице, и завернём её с ячейками сразу в тег
:
<table> <caption>Тег tfoot в таблице</caption> <thead> <tr> <th>Столбец 1</th> <th>Столбец 2</th> <th>Столбец 3</th> <th>Столбец 4</th> </tr> </thead> <tfoot> <tr> <td>Подвал столбец 1</td> <td>Подвал столбец 2</td> <td>Подвал столбец 3</td> <td>Подвал столбец 4</td> </tr> </tfoot> <tr> <td colspan="3">Строка2 Ячейка1 (соединена с ячейками 2 и 3)</td> <td rowspan="3">Строка2 Ячейка4 (соединена с ячейкой 4 в строках 3 и 4)</td> </tr> <tr> <td colspan="2" rowspan="2">Строка3 Ячейка1 (соединена с ячейкой 2 строки 3 и ячейками 1 и 2 строки 4)</td> <td>Строка3 Ячейка3</td> </tr> <tr> <td>Строка4 Ячейка3</td> </tr> </table>
А вот и наша табличка:
Столбец 1 | Столбец 2 | Столбец 3 | Столбец 4 |
---|---|---|---|
Подвал столбец 1 | Подвал столбец 2 | Подвал столбец 3 | Подвал столбец 4 |
Строка2 Ячейка1 (соединена с ячейками 2 и 3) | Строка2 Ячейка4 (соединена с ячейкой 4 в строках 3 и 4) | ||
Строка3 Ячейка1 (соединена с ячейкой 2 строки 3 и ячейками 1 и 2 строки 4) | Строка3 Ячейка3 | ||
Строка4 Ячейка3 |
Посмотрите внимательно, несмотря на то, что мы разместили тег
в середине таблицы, его содержимое выводится в её конце!
Тег tbody – тело таблицы.
В отличии от первых двух – этот тег может встречать в таблице сколько угодно раз. Фишек у него никаких нет. Он просто семантически указывает для поисковых роботов, что в нём идёт контент таблицы.
Вот такой код получится в итоге:
<table> <caption>Тег tbody в таблице</caption> <thead> <tr> <th>Столбец 1</th> <th>Столбец 2</th> <th>Столбец 3</th> <th>Столбец 4</th> </tr> </thead> <tfoot> <tr> <td>Подвал столбец 1</td> <td>Подвал столбец 2</td> <td>Подвал столбец 3</td> <td>Подвал столбец 4</td> </tr> </tfoot> <tbody> <tr> <td colspan="3">Строка2 Ячейка1 (соединена с ячейками 2 и 3)</td> <td rowspan="3">Строка2 Ячейка4 (соединена с ячейкой 4 в строках 3 и 4)</td> </tr> <tr> <td colspan="2" rowspan="2">Строка3 Ячейка1 (соединена с ячейкой 2 строки 3 и ячейками 1 и 2 строки 4)</td> <td>Строка3 Ячейка3</td> </tr> <tr> <td>Строка4 Ячейка3</td> </tr> </tbody> </table>
Внешне, наша таблица никак не изменилась! Поэтому и приводить её я здесь не буду.
И как обычно, для закрепления материала на практике, советую Вам глянуть видео №3.
Видео 3. HTML таблицы – шапка, тело и подвал
Кроме разбора на практике самих тегов, в этом видео, дополнительно, вы увидите, как оформить шапку, контент и подвал таблицы при помощи стилей.
Пустые ячейки
Браузеры иначе отображают ячейку, внутри которой ничего нет. «Ничего» в данном случае означает, что внутрь ячейки не добавили ни рисунок, ни текст, причём пробел в расчёт не принимается. Естественно, вид ячеек различается только в том случае, если вокруг них установлена граница. При использовании невидимой рамки, вид ячеек, независимо от того, есть в них что-нибудь или нет, совпадает.
Старые браузеры не отображали цвет фона пустых ячеек вида <td bgcolor=»#ffcc00″></td>, поэтому в том случае, когда требовалось оставить ячейку без содержимого, но отобразить цвет фона, внутрь ячейки добавляли неразделяемый пробел ( ). Пробел не всегда подходит, особенно когда нужно установить высоту ячейки 1–2 пиксела, из-за чего широкое распространение получил однопиксельный прозрачный рисунок. Действительно, такой рисунок можно масштабировать на свое усмотрение, но он на веб-странице никак не отображается.
К счастью эпоха однопиксельных рисунков и всяческих распорок на их основе прошла. Браузеры достаточно корректно работают с таблицами и без присутствия содержимого ячеек.
Для управления видом пустых ячеек используется свойство empty-cells, при значении hide граница и фон в пустых ячейках не отображается. Если все ячейки в строке пустые, то строка прячется целиком. Ячейка считается пустой в следующих случаях:
- нет вообще никаких символов;
- в ячейке содержится только перевод строки, символ табуляции или пробел;
- значение visibility установлено как hidden.
Добавление неразрывного пробела воспринимается как видимое содержание, т.е. ячейка уже будет не пустой (пример 2.10).
Пример 2.10. Пустые ячейки
XHTML 1.0CSS 2.1IECrOpSaFx
Вид таблицы в браузере Safari показан на рис. 2.11а. Та же таблица в браузере IE7 продемонстрирована на рис. 2.11б.
а. В браузере Safari, Firefox, Opera, IE8, IE9
б. В браузере IE7
Монтажные работы
Сегодня провести отделку гипсокартоном в туалете можно двумя способами:
- смонтировать металлический каркас;
- приклеить листы к самой стене.
Рассмотрим каждый способ более подробно. Создание металлического каркаса происходит по следующей схеме:
- к нанесенным линиям на стене прикладываем направляющий профиль;
- проделываем в нем отверстия с помощью перфоратора;
- крепим профиля с помощью дюбелей;
Готовый каркас Подобным образом монтируется и перегородка между ванной и туалетом. Но в таком случае перегородка должна содержать перемычки. Они позволят стабилизировать всю конструкцию. Далее необходимо обшить полученную конструкцию гипсокартонными листами. Для этого делаем следующее:
- при необходимости нарезаем листы на кусочки нужного размера;
- прикладываем их к каркасу и крепим на саморезы.
С помощью такой конструкции можно легко скрыть трубы, идущие от потолка к полу, без лишних затрат на создание отдельного короба. Второй способ предполагает отсутствие металлического каркаса, а материал к стенам крепится при помощи клеящих составов. Этот вариант крепления гипсокартона является более предпочтительным именно для туалета. Так как создание каркаса приводит к значительному уменьшению свободного пространства, а наши туалеты и так зачастую довольно узкие. Однако нужно отдавать себе отчет, что приклеить листы на неровные стены с явными перепадами уровня будет практически невозможно. Установка листов на стены при помощи клеящих составов предполагает проведение следующих действий:
- выравниваем стены с помощью штукатурки;
- нарезаем при необходимости листы на кусочки требуемого размера;
- наносим на листы или кусочки клеящий состав. Обрабатывать листы следует по всей поверхности.
Нанесение клеящего раствора
прикладываем гипсокартон к стене и придавливаем его. В таком состоянии следует подержать лист определенное время, нужное для его приклеивания.
Вне зависимости от используемого способа между листами гипсокартона все равно останутся швы. Их следует заделать следующим образом:
- заклеиваем все стыки серпянкой – самоклеящейся лентой;
- замазываем шпаклевкой места стыков и вкручивания саморезов;
- грунтуем всю поверхность гипсокартона раствором глубокого проникновения;
- наносим финишный слой шпаклевки.
Теперь нам остается только финальная отделка.
Nested Tables
You can use one table inside another table. Not only tables you can use almost all the tags inside table data tag <td>.
Example
Following is the example of using another table and other tags inside a table cell.
<!DOCTYPE html> <html> <head> <title>HTML Table</title> </head> <body> <table border = "1" width = "100%"> <tr> <td> <table border = "1" width = "100%"> <tr> <th>Name</th> <th>Salary</th> </tr> <tr> <td>Ramesh Raman</td> <td>5000</td> </tr> <tr> <td>Shabbir Hussein</td> <td>7000</td> </tr> </table> </td> </tr> </table> </body> </html>
This will produce the following result −
Previous Page
Print Page
Next Page
More Examples
How to add collapsed borders to a table (with CSS):
<html><head><style>table, th, td { border: 1px solid
black; border-collapse: collapse;}</style></head><body><table> <tr>
<th>Month</th> <th>Savings</th> </tr>
<tr> <td>January</td>
<td>$100</td> </tr> <tr>
<td>February</td> <td>$80</td> </tr>
</table></body></html>
How to right-align a table (with CSS):
<table style=»float:right»> <tr>
<th>Month</th> <th>Savings</th> </tr>
<tr> <td>January</td>
<td>$100</td> </tr> <tr>
<td>February</td> <td>$80</td> </tr>
</table>
How to center-align a table (with CSS):
<html><head><style>table, th, td { border: 1px solid
black;}table.center { margin-left: auto;
margin-right: auto;}</style></head><body><table
class=»center»> <tr>
<th>Month</th> <th>Savings</th> </tr>
<tr> <td>January</td>
<td>$100</td> </tr> <tr>
<td>February</td> <td>$80</td> </tr>
</table>
How to add background-color to a table (with CSS):
<table style=»background-color:#00FF00″> <tr>
<th>Month</th> <th>Savings</th> </tr>
<tr> <td>January</td>
<td>$100</td> </tr> <tr>
<td>February</td> <td>$80</td> </tr>
</table>
How to add padding to a table (with CSS):
<html><head><style>table, th, td { border: 1px solid
black;}th, td { padding: 10px;}</style></head><body><table> <tr>
<th>Month</th> <th>Savings</th> </tr>
<tr> <td>January</td>
<td>$100</td> </tr> <tr>
<td>February</td> <td>$80</td> </tr>
</table></body></html>
How to set table width (with CSS):
<table style=»width:400px»> <tr>
<th>Month</th> <th>Savings</th> </tr>
<tr> <td>January</td>
<td>$100</td> </tr> <tr>
<td>February</td> <td>$80</td> </tr>
</table>
How to create table headers:
How to create a table with a caption:
<table>
<caption>Monthly savings</caption> <tr>
<th>Month</th> <th>Savings</th> </tr>
<tr> <td>January</td>
<td>$100</td> </tr> <tr>
<td>February</td> <td>$80</td> </tr>
</table>
Как закрасить ячейку
Дополним нашу таблицу данными еще нескольких человек
<HTML> <HEAD> <TITLE>Телефонный справочник </TITLE> </HEAD> <BODY> <P ALIGN="CENTER"> <TABLE BORDER=1 BorderCOLOR=”#006600” width="400" BGCOLOR="#FFFFCC"> <TR BGCOLOR=”#99CC33”> <TD>№</TD> <TD>Фамилия</TD> <TD>Номер телефона</TD> </TR> <TR> <TD>1</TD> <TD>Фрося Бурлакова</TD> <TD>8-952-987-13-20</TD> </TR> <TR> <TD>2</TD> <TD>Иван Петров</TD> <TD>8-918-964-70-11</TD> </TR> <TR> <TD>3</TD> <TD>Афоня Ивлев</TD> <TD>8-961-594-12-45</TD> </TR> </TABLE> </P> </BODY> </HTML>
Результат
Теперь давайте закрасим столбец с нумерацией. Так как в HTML нет понятия столбец, то на первый взгляд это выглядит затруднительно. Но на самом деле все довольно просто: в каждой строке нужно закрасить первую ячейку. То есть в тэге <TD> прописать атрибут BGCOLOR и указать цвет
<HTML> <HEAD> <TITLE>Телефонный справочник </TITLE> </HEAD> <BODY> <P ALIGN="CENTER"> <TABLE BORDER=1 BorderCOLOR=”#006600” width="400" BGCOLOR="#FFFFCC"> <TR BGCOLOR=”#99CC33”> <TD>№</TD> <TD>Фамилия</TD> <TD>Номер телефона</TD> </TR> <TR> <TD BGCOLOR=”#FFFF99”>1</TD> <TD>Фрося Бурлакова</TD> <TD>8-952-987-13-20</TD> </TR> <TR> <TD BGCOLOR=”#FFFF99”>2</TD> <TD>Иван Петров</TD> <TD>8-918-964-70-11</TD> </TR> <TR> <TD BGCOLOR=”#FFFF99”>3</TD> <TD>Афоня Ивлев</TD> <TD>8-961-594-12-45</TD> </TR> </TABLE> </P> </BODY> </HTML>
В браузере вы увидите такую таблицу:
Tables Backgrounds
You can set table background using one of the following two ways −
-
bgcolor attribute − You can set background color for whole table or just for one cell.
-
background attribute − You can set background image for whole table or just for one cell.
You can also set border color also using bordercolor attribute.
Example
<!DOCTYPE html> <html> <head> <title>HTML Table Background</title> </head> <body> <table border = "1" bordercolor = "green" bgcolor = "yellow"> <tr> <th>Column 1</th> <th>Column 2</th> <th>Column 3</th> </tr> <tr> <td rowspan = "2">Row 1 Cell 1</td> <td>Row 1 Cell 2</td> <td>Row 1 Cell 3</td> </tr> <tr> <td>Row 2 Cell 2</td> <td>Row 2 Cell 3</td> </tr> <tr> <td colspan = "3">Row 3 Cell 1</td> </tr> </table> </body> </html>
This will produce the following result −
Here is an example of using background attribute. Here we will use an image available in /images directory.
<!DOCTYPE html> <html> <head> <title>HTML Table Background</title> </head> <body> <table border = "1" bordercolor = "green" background = "/images/test.png"> <tr> <th>Column 1</th> <th>Column 2</th> <th>Column 3</th> </tr> <tr> <td rowspan = "2">Row 1 Cell 1</td> <td>Row 1 Cell 2</td><td>Row 1 Cell 3</td> </tr> <tr> <td>Row 2 Cell 2</td> <td>Row 2 Cell 3</td> </tr> <tr> <td colspan = "3">Row 3 Cell 1</td> </tr> </table> </body> </html>
This will produce the following result. Here background image did not apply to table’s header.
Определение особого стиля для таблицы
Чтобы определить специальный стиль для таблицы, достаточно добавить ей уникальный идентификатор, т.е атрибут id:
<table id=»t01″>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>
1 |
<table id=»t01″> <tr> <th>Firstname</th> <th>Lastname</th> <th>Age</th> </tr> <tr> <td>Eve</td> <td>Jackson</td> <td>94</td> </tr> </table> |
И сейчас мы можем задать стиль для этого идентификатора:
table#t01 {
width: 100%;
background-color: #f1f1c1;
}
1 |
table#t01 { width100%; background-color#f1f1c1; } |
Немного поясню пример. Создав еще одну таблицу с идентификатром
id=t01 мы задали заливку цветом.
Теперь они отличаются по цвету.
А теперь для нас может встать такая задача, что заголовок должен быть одного цвета, все четные строки и нечетные также должны различаться по цветам. Для этого мы применим псевдоклассы для строк в таблице (тег
<tr> ):
table#t01 tr:nth-child(even) {
background-color: #eee;
}
table#t01 tr:nth-child(odd) {
background-color: #fff;
}
table#t01 th {
color: white;
background-color: black;
}
1 |
table#t01 tr:nth-child(even) { background-color#eee; } table#t01 tr:nth-child(odd) { background-color#fff; } table#t01 th { colorwhite; background-colorblack; } |
За все четные строки отвечает псевдокласс
nth-child(even)
За все нечетные строки
nth-child(odd)
Как мы видим использование псевдоклассов задает особый стиль для всей нашей таблицы. Представляете если строк в ней будет больше 30, 40, а нам необходимо ее красиво оформить. Вот тут-то и поможет использование данных псевдоклассов.
Создание простой HTML таблички
Прежде всего нам необходимо указать тег table. Это парный тег, который указывает браузеру, что именно в нём будет располагаться вся HTML таблица.
<table></table>
Но использование одного этого тега мало, ведь таблицу ещё надо наполнить. И там тоже есть свои правила, которые надо неукоснительно соблюдать.
Как вы знаете, в каждой таблице есть свои строки и колонки, которые на пересечении формируют ячейки. Однако в HTML – таблицы строятся немного по другому принципу. Изначально мы задаём им строки, а внутри строк задаём ячейки. И именно от количества ячеек в строке и будет завесить количество столбцов. Давайте попробуем сделать таблицу в html в блокноте.
Создание строк и ячеек
Строки задаются при помощи тегов tr. И внутри строк мы задаём ячейки тегами td. А сейчас мы по-быстрому забабахаем простую таблицу, с одной строкой и четырьмя ячейками. Вот её код:
<table> <tr> <td>Ячейка 1</td> <td>Ячейка 2</td> <td>Ячейка 3</td> <td>Ячейка 4</td> </tr> </table>
Как видите, у нас получилась простая таблица, с одной строкой и четырьмя ячейками, которые автоматически преобразуются в 4 столбца.
Ячейка 1 | Ячейка 2 | Ячейка 3 | Ячейка 4 |
А сейчас я предлагаю немного её усложнить, и добавить ещё три строки!
<table> <tr> <td>Строка1 Ячейка1</td> <td>Строка1 Ячейка2</td> <td>Строка1 Ячейка3</td> <td>Строка1 Ячейка4</td> </tr> <tr> <td>Строка2 Ячейка1</td> <td>Строка2 Ячейка2</td> <td>Строка2 Ячейка3</td> <td>Строка2 Ячейка4</td> </tr> <tr> <td>Строка3 Ячейка1</td> <td>Строка3 Ячейка2</td> <td>Строка3 Ячейка3</td> <td>Строка3 Ячейка4</td> </tr> <tr> <td>Строка4 Ячейка1</td> <td>Строка4 Ячейка2</td> <td>Строка4 Ячейка3</td> <td>Строка4 Ячейка4</td> </tr> </table>
Выглядеть она у нас будет вот так:
Строка1 Ячейка1 | Строка1 Ячейка2 | Строка1 Ячейка3 | Строка1 Ячейка4 |
Строка2 Ячейка1 | Строка2 Ячейка2 | Строка2 Ячейка3 | Строка2 Ячейка4 |
Строка3 Ячейка1 | Строка3 Ячейка2 | Строка3 Ячейка3 | Строка3 Ячейка4 |
Строка4 Ячейка1 | Строка4 Ячейка2 | Строка4 Ячейка3 | Строка4 Ячейка4 |
Кода получилось довольно много, однако оно того стоило! Думаю, теперь вам ясно, как работает создание таблиц в HTML. Однако это далеко не всё, мы ещё с вами только начали и дальше нас ждёт еще много интересного
Давайте мы немного модернизируем табличку и добавим ей небольшое название. Это делается при помощи тега caption. Этот тег надо размещать самым первым, сразу после открывающего тега table. Вот как это выглядит в коде:
<table> <caption>Пример таблицы с названием</caption> <tr> <td>Строка1 Ячейка1</td> <td>Строка1 Ячейка2</td> <td>Строка1 Ячейка3</td> <td>Строка1 Ячейка4</td> </tr> <tr> <td>Строка2 Ячейка1</td> <td>Строка2 Ячейка2</td> <td>Строка2 Ячейка3</td> <td>Строка2 Ячейка4</td> </tr> <tr> <td>Строка3 Ячейка1</td> <td>Строка3 Ячейка2</td> <td>Строка3 Ячейка3</td> <td>Строка3 Ячейка4</td> </tr> <tr> <td>Строка4 Ячейка1</td> <td>Строка4 Ячейка2</td> <td>Строка4 Ячейка3</td> <td>Строка4 Ячейка4</td> </tr> </table>
А вот, что у нас получится в итоге:
Строка1 Ячейка1 | Строка1 Ячейка2 | Строка1 Ячейка3 | Строка1 Ячейка4 |
Строка2 Ячейка1 | Строка2 Ячейка2 | Строка2 Ячейка3 | Строка2 Ячейка4 |
Строка3 Ячейка1 | Строка3 Ячейка2 | Строка3 Ячейка3 | Строка3 Ячейка4 |
Строка4 Ячейка1 | Строка4 Ячейка2 | Строка4 Ячейка3 | Строка4 Ячейка4 |
Как видите, несмотря на то, что мы разместили тег
внутри таблицы. Он располагается над ней.
Для закрепления материала на практике, я рекомендую вам посмотреть создание базовой таблички в видео ниже.
Работа с отступами в таблице
В статье «Блочная и строчная модель в CSS» мы научились применять внутренние и внешние отступы к текстовой информации, добавляя промежуток вокруг содержимого элементов. При работе с таблицами надо понимать, что добавить внутренний отступ (padding) вы сможете либо к её заголовку, либо к ее ячейкам, напрямую к тегу <table> добавить вы сможете только внешний отступ (margin):
<!DOCTYPE html> <html> <head> <title>Использование внутренних отступов в таблице</title> <style> table { margin: 0 auto; /* центруем по горизонитали внешними отступами */ } td, th { border: 1px solid #F50; /* задаем сплошную границу размером 1 пиксель цвета #F50 */ padding: 19px; /* устанавливаем внутренние отступы для всех сторон */ } caption { padding-bottom: 19px; /* устанавливаем внутренние отступы снизу для всех сторон */ } </style> </head> <body> <table> <caption>Отступы в таблице</caption> <tr> <th>1</th><th>2</th><th>3</th><th>4</th> </tr> <tr> <td>2</td><td></td><td></td><td></td> </tr> <tr> <td>3</td><td></td><td></td><td></td> </tr> <tr> <td>4</td><td></td><td></td><td></td> </tr> </table> </body> </html>
В данном примере мы:
- Разместили таблицу по центру, используя прием центровки по горизонитали внешними отступами (margin: 0 auto).
- Для ячеек таблицы (заголовочные и ячейки данных) мы установили сплошную границу размером 1 пиксель шестнадцатеричным цветом #F50 и установили внутренние отступы размером 19 пикселей для всех сторон.
- Для наименования таблицы (тег <caption>) мы установили внутренний отступ снизу равный 19 пикселей. Надеюсь, Вас не смущают неровные числа 🙂
Результат нашего примера:
Рис. 144 Пример использования внутренних отступов в таблице.