Любой HTML-документ состоит из специальных элементов, которые еще принято называть тегами.
В основном, HTML разметка состоит из так называемых открывающих и закрывающих тегов. Хотя бывают и исключения. Только немногие элементы используются без закрывающего тега, и мы конечно же их рассмотрим в свое время.
Открывающий тег – это элемент заключенный в угловые скобки <здесь пишем имя элемента>. Он показывает браузеру, где начинается этот элемент. Поэтому его еще иногда называют начальным тегом.
Закрывающий тег – содержит в себе то же имя, что и открывающий тег, но перед ним (перед именем тега) обязательно присутствует знак / (слэш).
Все что заключено в тег, то есть содержится между открывающимся и закрывающимся тегом называется содержимым элемента, или контентом.
Например, если смотреть на используемый ранее в практическом задании №1 код, то:
<title> – это начальный тег;
</title> – это закрывающий тег;
А текст «Пример HTML разметки» – это содержимое элемента <title>.
В прошлой теме, вы уже увидели из каких основных элементов состоит HTML-документ. Но из всей той разметки вам вряд ли было что-то понятным кроме слов, написанных кириллицей.
Поэтому давайте рассмотрим более детально каждую строку кода HTML-документа из практического задания №1.
Тем самым мы уже на начальных этапах изучим основные элементы (теги), из которых состоит наша HTML страница, и узнаем основные атрибуты этих элементов (тегов).
Рисунок 1. 11. Структура HTML-документа
Первой строкой кода у нас идет <!doctype html>
<!DOCTYPE> – это элемент, который указывает браузеру тип текущего документа.
DTD (document type definition, описание типа документа, определение типа документа) – это очень важный элемент. Благодаря нему браузер понимает согласно какому стандарту нужно отображать веб-страницу. И в итоге наша страница корректно отображается в браузере.
Если не указать <!DOCTYPE>, то браузер может не понять, как интерпретировать (выполнять код) текущую страницу. В результате определенные элементы могут либо вообще не отобразиться в браузере, либо же они будут отображены некорректно.
Считывая первую строку кода <!doctype html>, браузер понимает, что данную страницу следует интерпретировать как HTML-документ и код в нем написан на HTML5.
Я не буду описывать вам все допустимые DTD в этом разделе, так как мы будем изучать создание сайтов на HTML5. И забивать голову лишней информацией на ранних этапах я не вижу смысла.
Вторая строка нашего кода содержит элемент <html>. Этот тег не обязателен для HTML-документов, но хороший стиль написания когда диктует непременное его использование.
Элемент <html> состоит из открывающего тега <html> (в нашем примере это вторая строка кода), и закрывающего тега </html> (в нашем примере это 11 строка кода).
Тег <html> – это контейнер, в который заключается всё содержимое веб-страницы.
В третьей строке кода у нас элемент <head>. Он также состоит из открывающего тега <head> (3-я строка кода) и закрывающего тега </head> (6-я строка).
Все что заключено в тег <head> предназначено для браузера и поисковых систем. Информация, введенная в теге <head> не отображается на экране монитора при просмотре сайта (за исключением содержимого тега title).
В теге <head> мы прописываем другие элементы, которые помогают браузеру и поисковым машинам обрабатывать данные страницы. Здесь могут быть прописаны: заголовок страницы, её описание, ключевые слова для поисковых машин, кодировка HTML-документа и т. д.
<meta charset="utf-8"> – это строка кода, которая указывает кодировку документа. В данной строке кода у нас задействован тег <meta> и его атрибут charset (детально об атрибутах будет рассказано немного позже).
Тег <meta> – это необязательный элемент раздела <head>. Его используют для определяет метатегов. Эти мета-теги хранят в себе информацию, предназначенную для браузеров и поисковых систем.
Например, поисковые роботы считывают информацию из метатегов, чтобы получить описание страницы, ключевые слова, имя автора HTML-страницы и другую информацию.
На одной странице может быть несколько тегов <meta> в зависимости от того, какую информацию мы хотим предоставить браузеру и поисковым роботам.
Атрибут charset – задает кодировку страницы. В нашем примере – это самая распространенная кодировка UTF-8.
Раньше для кириллицы в Windows использовали кодировку windows-1251, но сейчас это считается плохой практикой.
Следующей строкой кода у нас идет тег <title> (строка 5). Этот тег предназначен для определения заголовка страницы.
Напрямую в браузере этот элемент не отображается. Он отображается как заголовок вкладки браузера (вспомните наш пример из практического задания №1). Также тег <title> предназначен для поисковых систем. Именно тот текст, который вы пропишите в title отображается первым поисковыми системами, когда человек что-то ищет.
Рисунок 1.12. Как отображается содержимое Title в поисковой системе
Тег <title> – обязательный элемент любой веб-страницы и он обязательно находится в контейнере <head>.
Важно!
- На одной странице может быть только один тег title;
- Длина заголовка (тега title) не должна превышать 80 символов. Лучше всего если длина title будет 60-70 символов.
И последний элемент, который мы рассмотрим в этой теме – это тег <body> (строка 8 и 10).
В теге <body> хранится вся информация, которую следует отображать в окне браузера. Иными словами – это контент нашей страницы (содержание веб-документа).
Здесь мы прописываем какой текст нужно показать пользователю, какие картинки отобразить в окне браузера, видео, формы входа (авторизации), кнопки, баннеры и другую информацию.
Открывающий и закрывающий тег <body> являются не обязательными. Но хороший стиль написания кода требует использования этого элемента в HTML-документе.
В приведенной ниже таблице, вы можете ознакомиться со всеми элементами HTML5 доступными на сегодняшний день. В этой книге мы постепенно, шаг за шагом, рассмотрим каждый из этих элементов.
Ну а если вам нужно дополнительное визуальное пояснение к данной главе, то его вы найдете на моем YouTube канале.
Таблица 1. 1. Полный список HTML-элементов
Тег |
Описание |
---|---|
<!--...--> |
Используется для добавления комментариев. |
<!DOCTYPE> |
Объявляет тип документа и предоставляет основную информацию для браузера — его язык и версия. |
<a> |
Создаёт гипертекстовые ссылки. |
<abbr> |
Определяет текст как аббревиатуру или акроним. Поясняющий текст задаётся с помощью атрибута title. |
<address> |
Задает контактные данные автора/владельца документа или статьи. Отображается в браузере курсивом. |
<area> |
Представляет собой гиперссылку с текстом, соответствующей определенной области на карте-изображении или активную область внутри карты-изображения. Всегда вложен внутрь тега <map>. |
<article> |
Раздел контента, который образует независимую часть документа или сайта, например, статья в журнале, запись в блоге, комментарий. |
<aside> |
Представляет контент страницы, который имеет косвенное отношение к основному контенту страницы/сайта. |
<audio> |
Загружает звуковой контент на веб-страницу. |
<b> |
Задает полужирное начертание отрывка текста, не придавая акцент или важность выделенному. |
<base> |
Задает базовый адрес (URL), относительно которого вычисляются все относительные адреса. Это поможет избежать проблем при переносе страницы в другое место, так как все ссылки будут работать, как и прежде. |
<bdi> |
Изолирует отрывок текста, написанный на языке, в котором чтение текста происходит справа налево, от остального текста. |
<bdo> |
Отображает текст в направлении, указанном в атрибуте dir, переопределяя текущее направление написания текста. |
<blockquote> |
Выделяет текст как цитату, применяется для описания больших цитат. |
<body> |
Представляет тело документа (содержимое, не относящееся к метаданным документа). |
<br> |
Перенос текста на новую строку. |
<button> |
Создает интерактивную кнопку. Внутрь тега можно поместить содержимое — текст или изображение. |
<canvas> |
Холст-контейнер для динамического отображения изображений, таких как простые изображения, диаграммы, графики и т.п. Для рисования используется скриптовый язык JavaScript. |
<caption> |
Добавляет подпись к таблице. Вставляется сразу после тега <table>. |
<cite> |
Используется для указания источника цитирования. Отображается курсивом. |
<code> |
Представляет фрагмент программного кода, отображается шрифтом семейства monospace. |
<col> |
Выбирает для форматирования один или несколько столбцов таблицы, не содержащих информацию одного типа. |
<colgroup> |
Создает структурную группу столбцов, выделяющую множество логически однородных ячеек. |
<data> |
Элемент используется для связывания значения атрибута value, которое представлено в машиночитаемом формате и может быть обработано компьютером, с содержимым тега. |
<datalist> |
Элемент-контейнер для выпадающего списка элемента <input>. Варианты значений помещаются в элементы <option>. |
<dd> |
Используется для описания термина из тега <dt>. |
<del> |
Помечает текст как удаленный, перечёркивая его. |
<details> |
Создаёт интерактивный виджет, который пользователь может открыть или закрыть. Представляет собой контейнер для контента, видимый заголовок виджета помещается в тег <summary>. |
<dfn> |
Определяет слово как термин, выделяя его курсивом. Текст, идущий следом, должен содержать расшифровку этого термина. |
<dialog> |
Интерактивный элемент, с которым взаимодействует пользователь для выполнения задачи, например, диалоговое окно, инспектор или окно. Без атрибута open не виден для пользователя. |
<div> |
Тег-контейнер для разделов HTML-документа. Используется для группировки блочных элементов с целью форматирования стилями. |
<dl> |
Тег-контейнер, внутри которого находятся термин и его описание. |
<dt> |
Используется для задания термина. |
<em> |
Выделяет важные фрагменты текста, отображая их курсивом. |
<embed> |
Тег-контейнер для встраивания внешнего интерактивного контента или плагина. |
<fieldset> |
Группирует связанные элементы в форме, рисуя рамку вокруг них. |
<figcaption> |
Заголовок/подпись для элемента <figure>. |
<figure> |
Самодостаточный тег-контейнер для такого контента как иллюстрации, диаграммы, фотографии, примеры кода, обычно с подписью. |
<footer> |
Определяет завершающую область (нижний колонтитул) документа или раздела. |
<form> |
Форма для сбора и отправки на сервер информации от пользователей. Не работает без атрибута action. |
<h1-h6> |
Создают заголовки шести уровней для связанных с ними разделов. |
<head> |
Элемент-контейнер для метаданных HTML-документа, таких как <title>, <meta>, <script>, <link>, <style>. |
<header> |
Секция для вводной информации сайта или группы навигационных ссылок. Может содержать один или несколько заголовков, логотип, информацию об авторе. |
<hr> |
Горизонтальная линия для тематического разделения параграфов. |
<html> |
Корневой элемент HTML-документа. Сообщает браузеру, что это HTML-документ. Является контейнером для всех остальных html-элементов. |
<i> |
Выделяет отрывок текста курсивом, не придавая ему дополнительный акцент. |
<iframe> |
Создает встроенный фрейм, загружая в текущий HTML-документ другой документ. |
<img> |
Встраивает изображения в HTML-документ с помощью атрибута src, значением которого является адрес встраиваемого изображения. |
<input> |
Создает многофункциональные поля формы, в которые пользователь может вводить данные. |
<ins> |
Выделяет текст подчеркиванием. Применяется для выделения изменений, вносимых в документ. |
<kbd> |
Выделяет текст, который должен быть введён пользователем с клавиатуры, шрифтом семейства monospace. |
<label> |
Добавляет текстовую метку для элемента <input>. |
<legend> |
Заголовок элементов формы, сгруппированных с помощью элемента <fieldset>. |
<li> |
Элемент маркированного или нумерованного списка. |
<link> |
Определяет отношения между документом и внешним ресурсом. Также используется для подключения внешних таблиц стилей. |
<main> |
Контейнер для основного уникального содержимого документа. На одной странице должно быть не более одного элемента <main>. |
<map> |
Создаёт активные области на карте-изображении. Является контейнером для элементов <area>. |
<mark> |
Выделяет фрагменты текста, помечая их желтым фоном. |
<meta> |
Используется для хранения дополнительной информации о странице. Эту информацию используют браузеры для обработки страницы, а поисковые системы — для ее индексации. В блоке <head> может быть несколько тегов <meta>, так как в зависимости от используемых атрибутов они несут разную информацию. |
<meter> |
Индикатор измерения в заданном диапазоне. |
<nav> |
Раздел документа, содержащий навигационные ссылки по сайту. |
<noscript> |
Определяет секцию, не поддерживающую сценарий (скрипт). |
<object> |
Контейнер для встраивания мультимедиа (например, аудио, видео, Java-апплеты, ActiveX, PDF и Flash). Также можно вставить другую веб-страницу в текущий HTML-документ. Для передачи параметров встраиваемого плагина используется тег <param>. |
<ol> |
Упорядоченный нумерованный список. Нумерация может быть числовая или алфавитная. |
<optgroup> |
Контейнер с заголовком для группы элементов <option>. |
<option> |
Определяет вариант/опцию для выбора в раскрывающемся списке <select>, <optgroup> или <datalist>. |
<output> |
Поле для вывода результата вычисления, рассчитанного с помощью скрипта. |
<p> |
Параграфы в тексте. |
<param> |
Определяет параметры для плагинов, встраиваемых с помощью элемента <object>. |
<picture> |
Элемент-контейнер, содержащий один элемент <img> и ноль или несколько элементов <source>. Сам по себе ничего не отображает. Дает возможность браузеру выбирать наиболее подходящее изображение. |
<pre> |
Выводит текст без форматирования, с сохранением пробелов и переносов текста. Может быть использован для отображения компьютерного кода, сообщения электронной почты и т.д. |
<progress> |
Индикатор выполнения задачи любого рода. |
<q> |
Определяет краткую цитату. |
<ruby> |
Контейнер для Восточно-Азиатских символов и их расшифровки. |
<rb> |
Определяет вложенный в него текст как базовый компонент аннотации. |
<rt> |
Добавляет краткую характеристику сверху или снизу от символов, заключенных в элементе <ruby>, выводится уменьшенным шрифтом. |
<rtc> |
Отмечает вложенный в него текст как дополнительную аннотацию. |
<rp> |
Выводит альтернативный текст в случае если браузер не поддерживает элемент <ruby>. |
<s> |
Отображает текст, не являющийся актуальным, перечеркнутым. |
<samp> |
Используется для вывода текста, представляющего результат выполнения программного кода или скрипта, а также системные сообщения. Отображается моноширинным шрифтом. |
<script> |
Используется для определения сценария на стороне клиента (обычно JavaScript). Содержит либо текст скрипта, либо указывает на внешний файл сценария с помощью атрибута src. |
<section> |
Определяет логическую область (раздел) страницы, обычно с заголовком. |
<select> |
Элемент управления, позволяющий выбирать значения из предложенного множества. Варианты значений помещаются в <option>. |
<small> |
Отображает текст шрифтом меньшего размера. |
<source> |
Указывает местоположение и тип альтернативных медиаресурсов для элементов <picture>, <video>, <audio>. |
<span> |
Контейнер для строчных элементов. Можно использовать для форматирования отрывков текста, например, выделения цветом отдельных слов. |
<strong> |
Расставляет акценты в тексте, выделяя полужирным. |
<style> |
Подключает встраиваемые таблицы стилей. |
<sub> |
Задает подстрочное написание символов, например, индекса элемента в химических формулах. |
<summary> |
Создаёт видимый заголовок для тега <details>. Отображается с закрашенным треугольником, кликнув по которому можно просмотреть подробности заголовка. |
<sup> |
Задает надстрочное написание символов. |
<table> |
Тег для создания таблицы. |
<tbody> |
Определяет тело таблицы. |
<td> |
Создает ячейку таблицы. |
<template> |
Используется для объявления фрагментов HTML-кода, которые могут быть клонированы и вставлены в документ скриптом. Содержимое тега не является его дочерним элементом. |
<textarea> |
Создает большие поля для ввода текста. |
<tfoot> |
Определяет нижний колонтитул таблицы. |
<th> |
Создает заголовок ячейки таблицы. |
<thead> |
Определяет заголовок таблицы. |
<time> |
Определяет дату/время. |
<title> |
Заголовок HTML-документа, отображаемый в верхней части строки заголовка браузера. Также может отображаться в результатах поиска, поэтому это следует принимать во внимание предоставление названия. |
<tr> |
Создает строку таблицы. |
<track> |
Добавляет субтитры для элементов <audio> и <video>. |
<u> |
Выделяет отрывок текста подчёркиванием, без дополнительного акцента. |
<ul> |
Создает маркированный список. |
<var> |
Выделяет переменные из программ, отображая их курсивом. |
<video> |
Добавляет на страницу видео-файлы. Поддерживает 3 видео формата: MP4, WebM, Ogg. |
<wbr> |
Указывает браузеру возможное место разрыва длинной строки. |