Содержание

Табличная HTML верстка сайта: пример и применение

При таком типе вёрстки элементы сайта располагаются по ячейкам. Создаётся файл-шаблон с разметкой и используется как основа для всех остальных страниц. Фактически от файла к файлу меняется только основной контент. Шапка сайта, его низ и меню берутся из уже готового шаблона и обычно остаются неизменными.

Табличная вёрстка проста и во всех браузерах выглядит одинаково. Но состоящие из таблиц страницы много весят, медленно загружаются и содержат избыточный код. К тому же структура таблиц позволяет создать только строгий дизайн.

Вёрстка этого типа делается просто: в теле документа создаётся таблица (и ничего, кроме неё), в ячейки которой добавляется весь контент. Вёрстка потому и называется табличной, что вся страница состоит из таблиц, а вся выводимая информация находится внутри их ячеек. Даже область с основным содержимым страницы (например, со статьёй) — это всего лишь ячейка, текст из которой отображается на экране.

HTML-документ не обязательно должен состоять из одной таблицы — их можно вкладывать друг в друга, получая более интересное оформление.

Теги для создания таблиц были рассмотрены в соответствующей статье. Ниже приведён пример их использования.

Итак, пример табличной вёрстки:

<!DOCTYPE html>
<html>
<head>
    <title>Табличная вёрстка</title>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<th colspan=2>шапка сайта (логотип, слоган, телефон)</th>
</tr>
<tr>
<th>навигация</th>
<th>заголовок</th>
</tr>
<tr>
<td>
<ul>
<li><a href="index.html" title="Ссылка 1">Ссылка 1</a></li>
<li><a href="index.html" title="Ссылка 2">Ссылка 2</a></li>
<li><a href="index.html" title="Ссылка 3">Ссылка 3</a></li>
</ul>
</td>
<td>контент</td>
</tr>
<tr>
<td colspan=2>Низ сайта (баннеры, счетчики, информация)</td>
</tr>
</table>
</body>
</html>

Если поместить этот код в тело HTML-документа и открыть получившийся файл в браузере, то страница будет выглядеть так:

Вот и вся разметка. Для создания страниц вам остаётся только сделать копию файла и вместо отображаемых слов вставить свой контент. Так, копируя файлы и редактируя содержащийся в ячейках текст, вы можете создать сколь угодно большой веб-сайт с табличной вёрсткой.

Но взглянем на код с пояснениями.

<table border="1" cellpadding="0" cellspacing="0">
  • Тег <table> открывает таблицу.
  • Атрибут border задаёт толщину табличных рамок.
  • Cellspacing устанавливает расстояние между ячейками. В данном случае оно сделано нулевым, чтобы таблица не расползалась.
<th colspan=2>шапка сайта (логотип, слоган, телефон)</th>
  • <th> — открывающий тег ячейки заголовка таблицы. В отличие от других, текст в этой ячейке будет выровнен по центру и выделен полужирным.
  • Colspan — атрибут, значение которого определяет, сколько ячеек по горизонтали относительно других строк текущий элемент будет занимать.
  • </th> закрывает ячейку.
  • Текст между тегами <th> и </th> — это и есть содержимое ячейки, ради него всё и делалось.

</tr> — конец строки.

<th>навигация</th> <th>заголовок</th>

Я разделил 100% ширины страницы на две части: 20% отдал под блок навигации, 80% — под основной контент.

<td>
<ul>
<li><a href="index.html" title="Ссылка 1">Ссылка 1</a></li>
<li><a href="index.html" title="Ссылка 2">Ссылка 2</a></li>
<li><a href="index.html" title="Ссылка 3">Ссылка 3</a></li>
</ul>

Вёрстка блока навигации. Создаю ячейку, занимающую 20% ширины таблицы. Внутри тегов <ul> </ul> расположен список ссылок. На его основе можно сделать меню сайта.

<tr><td colspan=2>Низ сайта (баннеры, счетчики, информация)</td></tr>

В следующей строке настраиваю подвал (низ) сайта. Для этого использую уже знакомые теги. При помощи colspan=2 делаю, чтобы низ сайта занимал по горизонтали сразу две ячейки, как шапка — эти части, в отличие от тела страницы, на блоки в моём случае делить не нужно.

Таким образом, для создания табличной вёрстки сайта, содержащего все основные элементы (шапку, низ, меню, контент страницы) понадобилась таблица, состоящая из четырёх строк и шести ячеек (строки головы и ног сайта содержат по одному элементу).

На современных сайтах практикуется блочная верстка, а таблицы уже вчерашний день.

Полезные ссылки:

www.seostop.ru

Теги для создания и оформления таблицы в html

Цель урока: создание и оформление таблицы в html

Создание таблицы в HTML

Рассмотрим теги для создания таблицы:

1
2
3
4
5
<table>
	<tr>
		<td> содержание </td>
	</tr>
</table>

<table> <tr> <td> содержание </td> </tr> </table>

Результат:

Добавим границу для таблицы — атрибут border:

1
2
3
4
5
<table border="1">
	<tr>
		<td> содержание </td>
	</tr>
</table>

<table border=»1″> <tr> <td> содержание </td> </tr> </table>

Результат:

Создания таблицы начинается с тега table (от англ. «таблица»). Тег tr служит для создания строки. В строке располагаются ячейки — тег td. Завершается таблица закрывающим тегом /table


Или пример таблицы посложнее:

Атрибуты тега TABLE

align left — таблица влево;
center – табл. по центру;
right — табл. вправо.
width 400
50%
bоrdеr ширина
bordercolor
цвета рамки
сеllspacing ширина грани рамки
cellpadding внутреннее расстояние до рамки
bgсоlоr Цвет
#rrggbb
bасkground файл (фон таблицы)

Важно: Для ячеек-заголовка таблицы используется тег th вместо td. Браузер размещает содержимое таких ячеек по центру и делает шрифт полужирным

Атрибуты тега TR — строки

alignleft, center, right
выравнивание по горизонтали
valigntop, middle, bottom, baselineвыравнивание по вертикали
bgcolorцветзадний фон
bordercolorцветцвет границы

Атрибуты тега TD или TH — ячейки

alignleft, center, rightвыравнивание по горизонтали
valigntop, middle, bottom, baselineвыравнивание по вертикали
widthчисло или процентширина ячейки
bgcolorцветцвет фона
backgroundфайлфайл фона
bordercolorцветцвет границы
nowrapзаставляет текст внутри ячейки отображаться без переносов, одной сплошной строкой
Важно:
  • Тег caption служит для создания заголовка таблицы
  • Для группировки заголовочных ячеек используется тег thead
  • Для группировки основного содержимого таблицы используется тег tbody
  • Тег tfoot определяет нижнюю часть таблицы

Тег caption заголовка таблицы может иметь атрибут, определяющий расположение заголовка — align — со следующими значениями:
top — заголовок над таблицей,
bottom — заголовок под таблицей,
left — заголовок вверху и выровнен влево,
right — заголовок вверху и выровнен вправо. К сожалению не все значения «работают» во всех браузерах.

Пример: Создать «каркас» таблицы со всеми тегами группировки


Выполнение:
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>

<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>

Объединение ячеек в таблице

В происходит при помощи двух атрибутов тега td: COLSPAN — объединение ячеек по горизонтали, ROWSPAN — объединение ячеек по вертикали.

Синтаксис COLSPAN:

1
2
3
4
<table border="1">
<tr><td colspan="2"> </td></tr>
<tr><td> </td><td> </td></tr>
</table>

<table border=»1″> <tr><td colspan=»2″> </td></tr> <tr><td> </td><td> </td></tr> </table>

Синтаксис ROWSPAN:

1
2
3
4
<table border="1">
<tr><td rowspan="2"> </td><td> </td></tr>
<tr><td> </td></tr>
</table>

<table border=»1″> <tr><td rowspan=»2″> </td><td> </td></tr> <tr><td> </td></tr> </table>

Пример: создать таблицу по образцу на картинке. Использовать слияние ячеек


Выполнение:
1
2
3
4
5
6
7
8
9
10
11
12
<table  border="1">
<caption>таблица с объединенными ячейками </caption>
<tr>
<th rowspan="2">&nbsp;</th>
<th colspan="2">3аголовок 1</th>
</tr>
<tr><th> заголовок 1.1</th><th> заголовок 1.2</th></tr>
<tr><th> заголовок 2</th>
<td> ячейка 1</td><td> ячейка 2</td></tr>
<tr><th> заголовок 3</th>
<td> ячейка 3</td><td> ячейка 4</td></tr>
</table>

<table border=»1″> <caption>таблица с объединенными ячейками </caption> <tr> <th rowspan=»2″>&nbsp;</th> <th colspan=»2″>3аголовок 1</th> </tr> <tr><th> заголовок 1.1</th><th> заголовок 1.2</th></tr> <tr><th> заголовок 2</th> <td> ячейка 1</td><td> ячейка 2</td></tr> <tr><th> заголовок 3</th> <td> ячейка 3</td><td> ячейка 4</td></tr> </table>

Лабораторная работа: создайте таблицы, с расположенными в их ячейках цифрами, точно по образцу:

Группировка ячеек: COLGROUP

Элемент colgroup позволяет создавать группы колонок с одинаковыми свойствами.

Рассмотрим на примере:

Пример: Создать таблицу по образцу


Выполнение:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<TABLE border="4">
<colgroup >
	<col span="2" />
	<col />
</colgroup>
<colgroup>
	<col span=2/>
</colgroup>
<TR>
<TD> 1-1 </TD><TD> 1-2 </TD><TD> 1-3 </TD><TD> 1-4 </TD><TD> 1-5</TD>
</TR>
<TR>
<TD> 2-1 </TD><TD> 2-2 </TD><TD> 2-3 </TD><TD> 2-4 </TD><TD> 2-5 </TD>
</TR>
</table>

<TABLE border=»4″> <colgroup > <col span=»2″ /> <col /> </colgroup> <colgroup> <col span=2/> </colgroup> <TR> <TD> 1-1 </TD><TD> 1-2 </TD><TD> 1-3 </TD><TD> 1-4 </TD><TD> 1-5</TD> </TR> <TR> <TD> 2-1 </TD><TD> 2-2 </TD><TD> 2-3 </TD><TD> 2-4 </TD><TD> 2-5 </TD> </TR> </table>

Атрибуты тега COLGROUP

align выравнивание содержимого столбца
  1. left — по левому краю (по умолчанию)
  2. center — по центру
  3. right — по правому краю

не работает в Firefox

dir определяет направление символов:
  1. ltr — слева направо
  2. rtl — справа налево

не работает в Firefox

span количество столбцов, к которым будет применяться оформление (по умолчанию 1)
style задает встроенную таблицу стилей
valign вертикальное выравнивание в ячейке таблицы
  1. bottom — по нижнему краю ячейки
  2. middle — по центру ячейки (по умолчанию)
  3. top — по верхнему краю ячейки

не работает в Firefox

width ширина столбца

HTML вложенные таблицы

Таблицы со сложной структурой проще заменять на вложенные таблицы.

Пример: создайте вложенные таблицы по образцу:


Выполнение:
1
2
3
4
5
6
7
8
9
10
11
<TABLE border="4">
<tr><td bgcolor="yellow">Таблица 1</td>
<td bgcolor="yellow">
<TABLE border=2 bgcolor="#FFFFFF">
<tr><td>Таблица 2</td> <td>Ячейка 2-2</td></tr>
<tr><td>Ячейка 3-2</td> <td>Ячейка 4-2</td></tr>
</TABLE>
</td>
<tr><td bgcolor="yellow">Ячейка 3-1</td>
<td bgcolor="yellow">Ячeйкa 4-1</td></tr>
</TABLE>

<TABLE border=»4″> <tr><td bgcolor=»yellow»>Таблица 1</td> <td bgcolor=»yellow»> <TABLE border=2 bgcolor=»#FFFFFF»> <tr><td>Таблица 2</td> <td>Ячейка 2-2</td></tr> <tr><td>Ячейка 3-2</td> <td>Ячейка 4-2</td></tr> </TABLE> </td> <tr><td bgcolor=»yellow»>Ячейка 3-1</td> <td bgcolor=»yellow»>Ячeйкa 4-1</td></tr> </TABLE>

Лабораторная работа:
  • Создайте таблицу с фиксированными размерами, содержащую ячейки указанной на рисунке ширины
  • Вставьте в левую нижнюю ячейку вложенную таблицу
  • Фон ячеек вложенной таблицы сделайте серым



Лабораторная работа:
  • Откройте задание, выполненное на прошлой лабораторной работе
  • Добавьте в верхнюю ячейку еще одну вложенную таблицу
  • Фон ячеек вложенной таблицы сделайте белым


labs-org.ru

HTML Таблицы



Таблица — это сетка из ячеек, формирующих строки и столбцы. Примерами таблиц могут служить различные финансовые отчеты, результаты спортивных соревнований, календари, расписания и т.д. Отдельный блок сетки называется ячейкой таблицы. Ячейки таблицы могут содержать самую разнообразную информацию, включая числа, текст, и даже видео и аудио объекты. С помощью языка HTML таблицы пишутся построчно.

Элемент <table> служит контейнером для элементов, определяющих содержимое таблицы. Чтобы создать строку таблицы, нужно добавить внутрь элемента <table> парный блочный тег <tr> (сокр. от англ. «tаЫе row» – строка таблицы). Сколько тегов <tr> вы добавите, столько строк в таблице и будет. Открывающий тег <tr> обозначает начало новой строки таблицы. После него помещаются элементы <td> (сокр. от англ. «tаЫе data» – данные таблицы), каждый из которых задает отдельную ячейку в этой строке. Внутрь элемента <td> вы помещаете свой контент (текст, числа, изображения и т.д.), отображаемый в этой ячейке. Конец строки обозначается закрывающим тегом </tr>.

Элемент <th> (сокр. от англ. «tаЫе heading» – заголовок таблицы) — необязательный табличный элемент, который используется точно так же, как и элемент <td>, однако его назначение — создание заголовка строки или столбца. Как правило, элемент <th> размещают в первой строке таблицы. Браузеры отображают текст в элементе <th> жирным шрифтом и центрируют его относительно ячейки. Применение в коде элемента <th> помогает людям, которые пользуются программами экранного доступа, а также улучшает результативность индексирования таблиц поисковыми машинами.

Рассмотрим простую таблицу, которая состоит из трех строк и трех столбцов, причем ячейки первой строки будут заголовками соответствующих столбцов. По умолчанию таблицы обычно отображаются без рамки:

Пример: Простая HTML-таблица

Заголовок 1Заголовок 2Заголовок 3
Ячейка 2×1Ячейка 2×2Ячейка 2×3
Ячейка 3×1Ячейка 3×2Ячейка 3×3

<table>
  <tr><th>Заголовок 1</th><th>Заголовок 2</th><th>Заголовок 3</th></tr>
  <tr><td>Ячейка 2x1 </td><td>Ячейка 2x2 </td><td>Ячейка 2x3 </td></tr>
  <tr><td>Ячейка 3x1 </td><td>Ячейка 3x2 </td><td>Ячейка 3x3 </td></tr>
</table>        

Граница таблицы

Мы уже знаем, что по умолчанию таблицы отображаются без рамки. Для добавления рамки вокруг таблицы нужно указать в документе несколько простых правил таблиц стилей. Свойство border управляет отображением линий сетки таблицы, а также задает толщину рамки вокруг таблицы в пикселах. Рамка отображается вокруг таблицы и между ячейками. Добавим к уже созданной таблице рамку толщиной один пиксель, установив свойство border для всех элементов таблицы, например, вот так:

<style>
    table, th, td {
        border: 1px solid black;
    }
</style>

Пример: Применение свойства border

Заголовок 1Заголовок 2Заголовок 3
Ячейка 2×1Ячейка 2×2Ячейка 2×3
Ячейка 3×1Ячейка 3×2Ячейка 3×3
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Рамка вокруг таблицы</title> <style> table, th, td { border: 1px solid black; } </style> </head>
  <body>   <table>   <tr><th>Заголовок 1</th><th>Заголовок 2</th><th>Заголовок 3</th></tr>   <tr><td>Ячейка 2x1 </td><td>Ячейка 2x2 </td><td>Ячейка 2x3 </td></tr>   <tr><td>Ячейка 3x1 </td><td>Ячейка 3x2 </td><td>Ячейка 3x3 </td></tr>   </table>   </body>
</html>
Свойство border следует устанавливать как для самой таблицы <table> так и для её ячеек <th> и <td>.

Одинарная рамка для таблицы

По умолчанию у смежных ячеек таблицы будет своя собственная граница. Это приводит к своего рода «двойной рамке», как видно из примера выше. Чтобы избавиться от «двойной рамки», добавьте свойство CSS border-collapse к своей таблице стилей:

<style>
  table {
    border-collapse: collapse;
  }
</style>

Пример: Применение свойства border-collapse

Заголовок 1Заголовок 2Заголовок 3
Ячейка 2×1Ячейка 2×2Ячейка 2×3
Ячейка 3×1Ячейка 3×2Ячейка 3×3
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Рамка вокруг таблицы</title> <style> table { border-collapse: collapse; } th, td { border: 1px solid black; } </style> </head>
  <body>   <table>   <tr><th>Заголовок 1</th><th>Заголовок 2</th><th>Заголовок 3</th></tr>   <tr><td>Ячейка 2x1 </td><td>Ячейка 2x2 </td><td>Ячейка 2x3 </td></tr>   <tr><td>Ячейка 3x1 </td><td>Ячейка 3x2 </td><td>Ячейка 3x3 </td></tr>   </table>   </body>
</html>

Поля и интервалы таблицы

По умолчанию размер ячеек таблицы подстраивается под их содержимое, но иногда бывает необходимо оставить вокруг табличных данных немного пространства (padding). Поскольку интервалы и поля относятся к элементам представления данных, это пространство настраивается с помощью стилевых таблиц CSS. Поле ячейки (padding) — это расстояние между содержимым ячейки и ее границей (border). Для его добавления примените свойство padding к элементу <td> или <th>. Интервал ячеек (border-spacing) — это расстояние между ними (<td> или <th>). Сначала присвойте значение separate свойству border-collapse элемента <table>, а затем установите расстояние между ячейками, изменив значение параметра border-spacing. Раньше за поля и интервал ячеек отвечали атрибуты cellpadding и cellspacing элемента <table>, но в спецификации HTML5 они были признаны устаревшими.

Пример использования padding и border-spacing:

Пример: Применение свойств padding и border-spacing

padding — это расстояние между содержимым ячейки и ее границей (желтый цвет)
Ячейка 1Ячейка 2
Ячейка 3Ячейка 4
border-spacing — это расстояние между ячейками (зеленый цвет)
Ячейка 1Ячейка 2
Ячейка 3Ячейка 4
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>padding и border-spacing</title> <style> table, td { border: 1px solid black; } table { border-spacing: 15px; background-color:green; } td { background-color:yellow; padding: 15px; } </style> </head>
  <body>   <table>   <tr><td>Ячейка 1</td><td>Ячейка 2</td></tr>   <tr><td>Ячейка 3</td><td>Ячейка 4</td></tr>   </table>   </body>
</html>
Примечание: Если к таблице применено свойство border-collapse: collapse, то интервал ячеек (border-spacing) не сработает.

Ширина таблицы

Ширину, занимаемую таблицей в окне браузера, можно указать с помощью свойства width CSS, в пикселях или процентах. Указание ширины таблицы в пикселях позволяет определить её точную ширину. Процентное соотношение позволяет сделать таблицу гибкой, т.е. она будет «растягиваться» или «сжиматься» в зависимости от того, какие еще элементы находятся на странице и какие размеры окна браузера.
Вот пример использования свойства width:

table {width: 100%;}

Пример: Применение свойства width

Ячейка 1Ячейка 2
Ячейка 3Ячейка 4
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>width: 100%</title> <style> table { border-collapse: collapse; width: 100%; } th, td { border: 1px solid black; padding: 15px; } </style> </head>
  <body>   <table>   <tr><td>Ячейка 1</td><td>Ячейка 2</td></tr>   <tr><td>Ячейка 3</td><td>Ячейка 4</td></tr>   </table>   </body>
</html>

Объединение ячеек (colspan и rowspan)

Одной из основных особенностей структуры таблицы является объединение ячеек, которое подразумевает растяжение ячейки и охват ею нескольких строк или столбцов. Это позволяет создавать сложные табличные структуры: заголовки <th> или ячейки <td> объединяются посредством добавления атрибутов colspan или rowspan. Атрибут colspan определяет количество ячеек, на которые простирается данная ячейка по горизонтали, а rowspan — по вертикали.

Объединение столбцов

Объединение столбцов достигается с помощью атрибута colspan в элементах <td> или <th> — ячейка растягивается вправо, охватывая последующие столбцы. В следующем примере значение атрибута colspan равно 2, а это значит, что ячейка должна занимать два столбца.

Пример: Применение атрибута colspan

Ячейка на два столбца
Ячейка 1Ячейка 2
Ячейка 3Ячейка 4
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Атрибут colspan</title> <style> table { border-collapse: collapse; width: 100%; } th, td { border: 1px solid black; padding: 5px; } </style> </head>
  <body>   <table>   <tr><th colspan="2">Ячейка на два столбца</th></tr>   <tr><td>Ячейка 1</td><td>Ячейка 2</td></tr>   <tr><td>Ячейка 3</td><td>Ячейка 4</td></tr>   </table>   </body>
</html>

Объединение строк

Строки, объединенные при помощи атрибута rowspan, ведут себя точно так же, как объединенные столбцы, с той лишь разницей, что диапазон ячеек задается сверху вниз и охватывает несколько строк.
В этом примере первая ячейка таблицы растягивается на две строки вниз:

Пример: Применение атрибута rowspan

Ячейка на две строкиЯчейка 1Ячейка 2
Ячейка 3Ячейка 4
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Атрибут rowspan</title> <style> table { border-collapse: collapse; width: 100%; } th, td { border: 1px solid black; padding: 5px; } </style> </head>
  <body>   <table>   <tr><th rowspan="2">Ячейка на две строки</th>       <td>Ячейка 1</td><td>Ячейка 2</td></tr>   <tr><td>Ячейка 3</td><td>Ячейка 4</td></tr>   </table>   </body>
</html>

Заголовок таблицы

Для создания заголовка или подписи таблицы используется парный тег <caption> (от англ. caption – подпись). Элемент <caption> предназначен для организации заголовка таблицы. Располагается сразу после тега <table>, но вне описания строки или ячейки.

Пример: Применение тега <caption>

Это заголовок таблицы
Ячейка на две строкиЯчейка 1Ячейка 2
Ячейка 3Ячейка 4
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Элемент caption</title> <style> table { border-collapse: collapse; width: 100%; } th, td { border: 1px solid black; padding: 5px; } </style> </head>
  <body>   <table>   <caption>Это заголовок таблицы</caption>   <tr><th rowspan="2">Ячейка на две строки</th>       <td>Ячейка 1</td><td>Ячейка 2</td></tr>   <tr><td>Ячейка 3</td><td>Ячейка 4</td></tr>   </table>   </body>
</html>

Теги группирования элементов таблиц

Для группирования элементов таблиц служат теги <thead>, <tbody> и <tfoot>. Так же, как веб-страница может содержать «шапку», «тело» и «подвал», таблица может содержать головную, основную и нижнюю части. Для логического группирования строк в верхней части таблицы (то есть для соз дания верхней шапки таблицы) используется тег <thead>. Заголовки таблицы должны быть помещены в элемент <thead>, например:

<thead>
<tr><th>Заголовок 1</th><th>Заголовок 2< /th></tr>
</thead>

Основное содержимое (тело) таблицы должно находиться внутри элемента <tbody> (таких блоков в таблице может быть несколько). Для логического группирования строк в нижней части таблицы (то есть для создания «подвала» таблицы) используется тег <tfoot> (в одной таблице допускается не более одного тега <tfoot>). В исходном коде тег <tfoot> ставится до тега <tbody>. Кроме логического группирования одной из причин использования элементов <thead> и <tfoot> является то, что если ваша таблица слишком длинная для единовременного отображения на экране (или для печати), то браузер будет отображать и заголовок (<thead>) и последнюю строку (<tfoot>), когда пользователь станет прокручивать вашу таблицу.

Пример: Теги <thead>, <tbody> и <tfoot>

Это шапка таблицы
Это подвал таблицы
Ячейка 1Ячейка 2Ячейка 3Ячейка 4
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Теги thead, tbody и tfoot</title> <style> table { border-collapse: collapse; width: 100%; } th, td { border: 1px solid black; padding: 5px; } </style> </head>
  <body> <table> <thead> <tr><th colspan="4">Это шапка таблицы</th></tr> </thead> <tfoot> <tr><td colspan="4">Это подвал таблицы</td></tr> </tfoot> <tbody> <tr><td>Ячейка 1</td><td>Ячейка 2</td><td>Ячейка 3</td><td>Ячейка 4</td></tr> </tbody> </table>   </body>
</html>

Несмотря на то, что мы перед <tbody> добавили <tfoot>, он, тем не менее, появляется в конце таблицы. Это исходит из того, что <tbody> может содержать много строк. Но браузеру нужно отобразить нижнюю часть таблицы до получения всех (потенциально многочисленных) строк данных. Вот почему <tfoot> в коде прописывается перед элементом <tbody>.


Задачи


  • Объединение столбцов

    Напиште разметку для таблицы, изображенной на рис.1.

    Задача HTML:

    Реши сам »

    Ячейка на два столбца
    Ячейка 1Ячейка 2

    Рис.1

  • Объединение строк

    Напиште разметку для таблицы, изображенной на рис.1.

    Задача HTML:

    Реши сам »

    Ячейка на три строкиЯчейка 1
    Ячейка 2
    Ячейка 3

    Рис.1

  • Убрать двойную рамку таблицы

    По умолчанию граница таблицы имеет эффект двойной рамки, измените код так, чтобы все линии этой рамки стали одинарными.

    Задача HTML:

    Реши сам »
    Заголовок 1Заголовок 2Заголовок 3
    Ячейка 1x1 Ячейка 1x2 Ячейка 1x3
    Ячейка 2x1 Ячейка 2x2 Ячейка 2x3
    <!DOCTYPE html> <html>
    <head>
    <meta charset="UTF-8">
    <title>Рамка вокруг таблицы</title> <style> table, th, td {border: 1px solid black;} </style> </head>
      <body>   <table>   <tr><th>Заголовок 1</th><th>Заголовок 2</th><th>Заголовок 3</th></tr>   <tr><td>Ячейка 1x1 </td><td>Ячейка 1x2 </td><td>Ячейка 1x3 </td></tr>   <tr><td>Ячейка 2x1 </td><td>Ячейка 2x2 </td><td>Ячейка 2x3 </td></tr>   </table>   </body>
    </html>
  • Широкая таблица

    Сделайте чтобы эта таблица отображалось полностью на всю ширину окна браузера вне зависимости от ее ширины.

    Задача HTML:

    Реши сам »
    Заголовок 1Заголовок 2Заголовок 3
    Ячейка 1x1 Ячейка 1x2 Ячейка 1x3
    Ячейка 2x1 Ячейка 2x2 Ячейка 2x3
    <!DOCTYPE html> <html>
    <head>
    <meta charset="UTF-8">
    <title>Ширина таблицы</title> <style> table {border-collapse: collapse;} th, td {border: 1px solid black;} </style> </head>
      <body>   <table>   <tr><th>Заголовок 1</th><th>Заголовок 2</th><th>Заголовок 3</th></tr>   <tr><td>Ячейка 1x1 </td><td>Ячейка 1x2 </td><td>Ячейка 1x3 </td></tr>   <tr><td>Ячейка 2x1 </td><td>Ячейка 2x2 </td><td>Ячейка 2x3 </td></tr>   </table>   </body>
    </html>
  • Заголовок таблицы

    Измените приведенный код так, чтобы над таблицей появился основной заголовок (подпись), как показано на рис.1.

    Задача HTML:

    Реши сам »
    Основной заголовок таблицы
    Заголовок 1Заголовок 2Заголовок 3
    Ячейка 1x1 Ячейка 1x2 Ячейка 1x3
    Ячейка 2x1 Ячейка 2x2 Ячейка 2x3

    Рис.1

    <!DOCTYPE html> <html>
    <head>
    <meta charset="UTF-8">
    <title>Ширина таблицы</title> <style> table {border-collapse: collapse;width:100%} th, td {border: 1px solid black;} </style> </head>
      <body>   <table>   <tr><th>Заголовок 1</th><th>Заголовок 2</th><th>Заголовок 3</th></tr>   <tr><td>Ячейка 1x1 </td><td>Ячейка 1x2 </td><td>Ячейка 1x3 </td></tr>   <tr><td>Ячейка 2x1 </td><td>Ячейка 2x2 </td><td>Ячейка 2x3 </td></tr>   </table>   </body>
    </html>
  • Поле внутри ячеек

    Измените приведенный код так, чтобы между текстом внутри ячеек и их границей появился зазор (поле) шириной 25px, как показано на рис.1.

    Задача HTML:

    Реши сам »
    Ячейка 1Ячейка 2
    Ячейка 3Ячейка 4

    Рис.1

    <!DOCTYPE html> <html>
    <head>
    <meta charset="UTF-8">
    <title>Интервал между ячейками</title> <style> table, td { border: 1px solid black; } </style> </head>
      <body>   <table>   <tr><td>Ячейка 1</td><td>Ячейка 2</td></tr>   <tr><td>Ячейка 3</td><td>Ячейка 4</td></tr>   </table>   </body>
    </html>
  • Объединение строк

    Попробуйте написать разметку для таблицы, изображенной на рис.1. Совет: Строки всегда объединяются сверху вниз, поэтому ячейка с «ананасами» является частью первой строки.

    фурмаананасыперсики
    бананыгруши
    авокадо

    Рис.1

    <!DOCTYPE html>
    <html>
     <head>
      <meta charset="utf-8">
      <title>Объединение строк</title>
      <style>
        table {
          border-collapse: collapse;
          width: 100%;
        }
        th, td {
          border: 1px solid black;
          padding: 5px;
        } 
      </style>   
     </head>
     <body>
      <table>
        <tr>
          <td>фурма</td>
          <td rowspan="3">ананасы</td>
          <td>персики</td>
        </tr>
        <tr>
          <td>бананы</td>
          <td rowspan="2">груши</td>
        </tr>
        <tr>
          <td>авокадо</td>
        </tr>
      </table>
     </body>
    </html>





Please enable JavaScript to view the comments powered by Disqus.

wm-school.ru

Работа с HTML таблицами для новичков

Начиная с этого урока, я больше не буду приводить структуру всей страницы, считайте, что мы всегда работаем внутри тега body.

Блок . Структура простейшей таблицы

Я думаю, вы представляете, что такое таблица в обычной жизни — это набор строк и столбцов, на пересечении которых находятся ячейки.

В HTML таблицы создаются по похожему принципу. Там тоже есть столбцы и строки с ячейками, однако HTML код таблиц при первом взгляде может показаться непривычным.

Сама таблица имеет жесткую структуру: главным является тег <table>, внутри которого должны лежать теги <tr>, которые создают ряды (строки) таблицы, а внутри них — теги <td>, которые создают ячейки.

Как вы видите, нету тегов, которые создавали бы столбцы — таблицы создаются по рядам: сначала первый ряд, потом второй и так далее.

Изучите внимательно следующий пример с таблицей (тегу table добавлен атрибут border, который задает границу таблице и ее ячейкам):

<table border="1">
	<!--Это будет первый ряд таблицы:-->
	<tr>
		<td>Ячейка 1</td>
		<td>Ячейка 2</td>
		<td>Ячейка 3</td>
	</tr>

	<!--Это будет второй ряд таблицы:-->
	<tr>
		<td>Ячейка 4</td>
		<td>Ячейка 5</td>
		<td>Ячейка 6</td>
	</tr>

	<!--Это будет третий ряд таблицы:-->
	<tr>
		<td>Ячейка 7</td>
		<td>Ячейка 8</td>
		<td>Ячейка 9</td>
	</tr>
</table>

Так код будет выглядеть в браузере:

Ячейка 1Ячейка 2Ячейка 3
Ячейка 4Ячейка 5Ячейка 6
Ячейка 7Ячейка 8Ячейка 9

Блок . Ячейки-заголовки

Кроме тегов td существуют также теги <th>, которые также создают ячейки. Но это уже будут не обычные ячейки, а ячейки-заголовки, которые указывают, что находится в данном столбце (или строке) таблицы.

В следующем примере ячейки «Иван» и «Николай» должны быть обычными ячейками td, а ячейка «Имя» по логике должна быть ячейкой-заголовком th, так как «Имя» — это общее название содержимого этого столбца:

<table border="1">
	<tr>
		<th>Имя</th>
		<th>Фамилия</th>
		<th>Зарплата</th>
	</tr>
	<tr>
		<td>Иван</td>
		<td>Иванов</td>
		<td>200$</td>
	</tr>
	<tr>
		<td>Николай</td>
		<td>Сидоров</td>
		<td>1000$</td>
	</tr>
</table>

Так код будет выглядеть в браузере:

ИмяФамилияЗарплата
ИванИванов200$
НиколайСидоров1000$

По умолчанию текст в ячейках th будет жирный и расположен по центру (это поведение можно поменять, но об этом позже).

Блок . Атрибут cellspacing

Вы обратили внимание на то, что между ячейками есть некоторое расстояние, из-за которого видно то, что каждая ячейка имеет свою границу? Это расстояние регулируется атрибутом cellspacing. При этом, если мы не напишем этот атрибут, то его значение будет совсем не ноль (в этом случае все ячейки слиплись бы друг с другом). То есть, атрибут cellspacing по умолчанию имеет некоторое ненулевое значение, из-за которого ячейки не слипаются (это расстояние равно нескольким пикселям).

Давайте посмотрим на примере. Сейчас я увеличу отступ между ячейками до 10 пикселей:

<table border="1" cellspacing="10">
	<tr>
		<th>Имя</th>
		<th>Фамилия</th>
		<th>Зарплата</th>
	</tr>
	<tr>
		<td>Иван</td>
		<td>Иванов</td>
		<td>200$</td>
	</tr>
	<tr>
		<td>Николай</td>
		<td>Сидоров</td>
		<td>1000$</td>
	</tr>
</table>

Так код будет выглядеть в браузере:

ИмяФамилияЗарплата
ИванИванов200$
НиколайСидоров1000$

То, что cellspacing имеет некоторое значение по умолчанию, зачастую может мешать вам. В этом случае следует просто поставить его в ноль.

В HTML5 этот атрибут считается устаревшим (но он по-прежнему придает отступ по умолчанию). Вместо него следует использовать специальное CSS свойство, о котором мы поговорим попозже.

Если вы думаете, что вам не стоит изучать этот атрибут из-за того, что он устарел — вы ошибаетесь. В мире гораздо больше сайтов, сделанных не на HTML5, и в них вы можете столкнуться с этим атрибутом (и некоторыми другими устаревшими, которые мы будем проходить). В этом случае вам нужно знать, что это такое и как с ним работать.

Блок . Атрибут cellpadding

Атрибут cellpadding задает отступ между текстом и границей ячейки. В следующем примере я поставлю значение этого атрибута в 20px и теперь текст отойдет от границы ячеек:

<table border="1" cellpadding="20">
	<tr>
		<th>Имя</th>
		<th>Фамилия</th>
		<th>Зарплата</th>
	</tr>
	<tr>
		<td>Иван</td>
		<td>Иванов</td>
		<td>200$</td>
	</tr>
	<tr>
		<td>Николай</td>
		<td>Сидоров</td>
		<td>1000$</td>
	</tr>
</table>

Так код будет выглядеть в браузере:

ИмяФамилияЗарплата
ИванИванов200$
НиколайСидоров1000$

Для сравнения привожу то, как таблица будет выглядеть по умолчанию:

ИмяФамилияЗарплата
ИванИванов200$
НиколайСидоров1000$

Атрибут cellpadding также имеет некоторое значение по умолчанию. Если оно вам мешает — обнулите его.

Этот атрибут, так же, как и cellspacing, считается устаревшим в HTML5.

Блок . Обнуляем cellpadding и cellspacing

Давайте обнулим cellpadding и cellspacing и посмотрим, что станет с таблицей в этом случае:

<table border="1" cellpadding="0" cellspacing="0">
	<tr>
		<th>Имя</th>
		<th>Фамилия</th>
		<th>Зарплата</th>
	</tr>
	<tr>
		<td>Иван</td>
		<td>Иванов</td>
		<td>200$</td>
	</tr>
	<tr>
		<td>Николай</td>
		<td>Сидоров</td>
		<td>1000$</td>
	</tr>
</table>

Так код будет выглядеть в браузере:

ИмяФамилияЗарплата
ИванИванов200$
НиколайСидоров1000$

Как вы видите, в данном случае ячейки таблицы слиплись, однако все равно заметно, что каждая ячейка имеет свою границу (то есть границы сейчас двойные). Вы сможете поправить это, когда изучите язык CSS.

Блок . Добавляем ширину и высоту

Существуют также атрибуты width и height, которые позволяют задать таблице ширину и высоту таблицы соответственно (без этих атрибутов ширина и высота таблицы регулируются ее содержимым: много текста — ширина большая, мало текста — ширина маленькая).

Посмотрите на пример их применения:

<table border="1" cellpadding="0" cellspacing="0">
	<tr>
		<th>Имя</th>
		<th>Фамилия</th>
		<th>Зарплата</th>
	</tr>
	<tr>
		<td>Иван</td>
		<td>Иванов</td>
		<td>200$</td>
	</tr>
	<tr>
		<td>Николай</td>
		<td>Сидоров</td>
		<td>1000$</td>
	</tr>
</table>

Так код будет выглядеть в браузере:

ИмяФамилияЗарплата
ИванИванов200$
НиколайСидоров1000$

Значениями атрибутов могут выступать пиксели или проценты. Значения в процентах задаются таким образом: width=»30%» — в этом случае таблица займет 30% ширины родителя.

Что вам делать дальше:

Приступайте к решению задач по следующей ссылке: задачи к уроку.

Когда все решите — переходите к изучению новой темы.

old.code.mu

Стилизация HTML-таблиц с помощью CSS

HTML-таблицы

Таблицы – неотъемлемый элемент языка гипертекстовой разметки HTML, остающийся до сих пор актуальным для структуризации и удобном представлении различных данных.

Давным давно, когда сайты верстали преимущественно в табличном виде, таблицы пользовались высоким спросом и составляли чуть ли не весь каркас нового ресурса. После, значимость элемента поубавила в популярности относительно блоков (div), с помощью которых возможности верстки стали более расширенными как для десктопной, так и мобильной версий сайтов.

Структура HTML-таблиц

В настоящее время таблицы используются, например, для прайс-листов, списков, характеристик, анкет и много другого, а с применением каскадных таблиц стилей (CSS), мы можем усовершенствовать визуальное представление таблиц в документе. Здесь я представлю несколько примеров оформления HTML-таблиц с исходным кодом, что в дальнейшем можно будет применить при разработке своего проекта.

Стилизация таблиц с помощью CSS

Стилизация таблиц представляет из себя готовую, построенную таблицу на HTML с указанием свойств CSS на определенные теги. Я надеюсь, вы знаете, как и куда вставлять полученный исходный код, чтобы отобразить результат на экране.

Создание и стилизация таблиц на HTML и CSS

В начале приведу общий HTML-код таблицы, который мы в последствии будем стилизовать.

<table>
  <thead>
    <tr>
      <td>Наименование</td>
      <td>Описание</td>
      <td>Цена</td>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Имя</td>
      <td>Характеристики</td>
      <td>Стоимость</td>
    </tr>
    <tr>
      <td>Имя #2</td>
      <td>Характеристики</td>
      <td>Стоимость</td>
    </tr>
    <tr>
      <td>Имя #3</td>
      <td>Характеристики</td>
      <td>Стоимость</td>
    </tr>
  </tbody>
</table>

Шаблоны CSS

Шаблоны не претендуют на оригинальность, но могут быть полезные многим.

#1

table {width: 100%; border-collapse: collapse;}
table td {padding: 12px 16px;}
table thead tr {font-weight: bold; border-top: 1px solid #e8e9eb;}
table tr {border-bottom: 1px solid #e8e9eb;}
table tbody tr:hover {background: #e8f6ff;}
НаименованиеОписаниеЦена
ЛукСобран лучшими сварщиками предприятия20 ₽
КапустаИдеально подходит для борща52 ₽
ЧеснокОсобо острый, с витаминами24 ₽

Кстати, если бы мы не использовали тег <thead>, то задать свои стили к первому ряду можно было с помощью псевдокласса :nth-child(1).

#2

table {width: 100%; border-collapse: collapse;}
table thead tr {color: #ffffff; font-weight: bold; background: #00bf80;}
table thead tr td {border: 1px solid #01ab73;}
table tbody tr td {border: 1px solid #e8e9eb;}
table tbody tr:nth-child(2n) {background: #f4f4f4;}
table tbody tr:hover {background: #ebffe8;}
НаименованиеОписаниеЦена
ВиноградДля приготовления вина146 ₽
ЯблокоНа любой вкус недорого72 ₽
ЛимонОсобо кислый46 ₽

#3

table {width: 100%; border-collapse: separate; border-spacing: 4px;}
table thead tr {color: #ffffff; font-weight: bold;}
table thead tr td {border-radius: 4px 4px 0 0; background: #2e82c3;}
table tbody tr td {border: 1px solid #2e82c3; border-radius: 4px; background: #cbdfef;}
table tbody tr td:hover {background: #a2c3dd; transition-duration: 0.2s;}
НаименованиеОписаниеЦена
SamsungGalaxy S8, S8 Plus2400 ₽
XiaomiRedmi 4A, 4X520 ₽
MeizuM3S, M5S720 ₽

#4

table {width: 100%; text-align: center; border-bottom: 2px solid #dfdfdf; border-radius: 6px; border-collapse: separate; border-spacing: 0px;}
table thead tr {color: #ffffff; font-weight: bold; background: #c83240;}
table tr td {border-right: 1px solid #dfdfdf;}
table tr td:last-child {border-right: 0px;}
table tbody tr:nth-child(1n) {background: #f6f6f6;}
table tbody tr:nth-child(2n) {background: #e6e6e6;}
table tbody tr:hover {background: #ffe8e8; transition-duration: 0.6s;}
НаименованиеОписаниеЦена
ВиражДверь облицованная натуральным шпоном5200 ₽
НаполеонМежкомнатная крашеная дверь по каталогу RAL9900 ₽
ЛатинаДверь с покрытием ПВХ7900 ₽

Своойства CSS

Что означают используемые свойства CSS в шаблонах:

  • width – ширина таблицы;
  • border-collapse – способ отображения границ ячеек вокруг таблицы;
  • border-spacing – расстояние между границами ячеек в таблице;
  • border-radius – скругление углов рамки;
  • padding – внутреннее расстояние элемента от края границы;
  • color – цвет элемента;
  • text-align – выравнивание текста по горизонтали;
  • font-weight – насыщенность шрифта;
  • background – параметры фона;
  • transition-duration – длительность анимации;
  • border – толщина, стиль и цвет границы вокруг элемента.

CompanyContactCountry
Alfreds FutterkisteMaria AndersGermany
Centro comercial MoctezumaFrancisco ChangMexico
Ernst HandelRoland MendelAustria
Island TradingHelen BennettUK
Laughing Bacchus WinecellarsYoshi TannamuriCanada
Magazzini Alimentari RiunitiGiovanni RovelliItaly

ТегОписание
<table>Определяет таблицу.
<th>Определяет ячейку заголовка в таблице.
HTML table trОпределяет строку в таблице.
<td>Определяет ячейку в таблице.
<caption>Определяет подпись таблицы.
<colgroup>Определяет группу из одного или более столбцов для форматирования.
<col>Определяет свойства для каждого столбца в элементе <colgroup>.
<thead>Группирует контент заголовка в таблице.
<tbody>Группирует контент тела таблицы.
<tfoot>Группирует контент футера таблицы.