1. Основы HTML: Структура документа, семантическая разметка и работа с формами
Основы HTML: Структура документа, семантическая разметка и работа с формами
Добро пожаловать в мир Frontend-разработки! Вы делаете первый и самый важный шаг — начинаете изучение фундамента, на котором держится весь интернет. Прежде чем мы начнем создавать красивые анимации или сложную логику, нам нужно построить скелет нашего будущего сайта. Этим скелетом является HTML.
Что такое HTML?
HTML (HyperText Markup Language) — это язык гипертекстовой разметки. Важно понимать: это не язык программирования в привычном смысле (как JavaScript или Python). Здесь нет переменных, циклов или функций. HTML — это язык структуры.
Представьте, что вы пишете статью в газету. Вам нужно указать редактору, где будет заголовок, где основной текст, где фотография, а где подпись к ней. HTML делает то же самое для браузера. Он сообщает браузеру: «Вот это — заголовок, это — абзац текста, а это — кнопка».
Теги и элементы
Основа HTML — это теги. Теги — это ключевые слова, заключенные в угловые скобки. Большинство тегов являются парными: у них есть открывающая часть и закрывающая часть.
Синтаксис выглядит так:
Например, чтобы создать абзац текста, мы используем тег p (от английского paragraph):
Существуют также одиночные (пустые) теги, которые не требуют закрывающего тега, так как у них нет текстового содержимого. Например, тег переноса строки <br> или тег изображения <img>.
Базовая структура HTML-документа
Любой HTML-файл начинается со стандартного набора тегов. Это «шаблон», который вы будете использовать в каждом проекте. Давайте разберем его построчно.
Разбор структуры
<!DOCTYPE html>: Это не совсем тег, а инструкция для браузера. Она говорит: «Я использую современный стандарт HTML5». Без этой строчки браузер может отображать сайт некорректно, перейдя в режим совместимости со старыми стандартами.<html>: Корневой элемент. Весь ваш код должен находиться внутри него. Атрибут lang="ru" сообщает браузеру и поисковикам, что страница на русском языке.<head>: Это «голова» документа. Здесь хранится служебная информация, которая не отображается на самой странице, но важна для работы сайта.<meta charset="UTF-8">: Устанавливает кодировку. Благодаря этому браузер правильно отображает кириллицу, эмодзи и спецсимволы.
* <title>: Заголовок страницы, который вы видите на вкладке браузера.
<body>: Это «тело» документа. Всё, что вы напишете здесь (текст, картинки, кнопки), пользователь увидит в окне браузера.!Визуальная схема структуры HTML-документа, разделяющая служебную информацию и видимый контент.
Атрибуты тегов
Теги могут иметь атрибуты, которые расширяют их возможности. Атрибуты всегда пишутся в открывающем теге и обычно состоят из имени и значения.
Пример ссылки с атрибутом href:
Здесь a — это тег ссылки (anchor), а href — атрибут, указывающий адрес, куда эта ссылка ведет.
Пример изображения с атрибутами src и alt:
* src (source) — путь к файлу картинки.
* alt (alternative text) — текст, который появится, если картинка не загрузится. Также этот текст читают скринридеры (программы для незрячих пользователей), поэтому его заполнение обязательно для доступности.
Семантическая разметка
Раньше разработчики использовали универсальный тег <div> (блок) для создания любых структур на сайте. Код выглядел как бесконечный набор <div>, в котором было сложно разобраться.
В современном HTML5 появились семантические теги. Они не меняют внешний вид элемента (без CSS), но четко говорят браузеру и разработчику о смысле содержимого. Это критически важно для SEO (продвижения в поисковиках) и доступности.
Основные семантические теги
* <header>: «Шапка» сайта или раздела. Обычно содержит логотип и меню.
* <nav>: Блок навигации с основными ссылками.
* <main>: Основное, уникальное содержимое страницы. На странице должен быть только один тег <main>.
* <article>: Самодостаточный материал (например, статья в блоге, пост в соцсети, карточка товара).
* <section>: Смысловой раздел страницы (например, раздел «О нас», «Контакты»).
* <aside>: Боковая панель или контент, косвенно связанный с основным (реклама, список категорий).
* <footer>: «Подвал» сайта. Содержит копирайты, контакты, дополнительные ссылки.
> Использование правильных семантических тегов — признак профессионального разработчика. Это делает код чище и понятнее.
!Типичная структура веб-страницы с использованием семантических тегов HTML5.
Работа с текстом и списками
Для структурирования текста используются заголовки и списки.
Заголовки
Существует 6 уровней заголовков: от <h1> до <h6>.
* <h1> — самый главный заголовок. На странице он должен быть только один (обычно это название статьи или страницы).
* <h2> — заголовки разделов.
* <h3> — подзаголовки внутри разделов и так далее.
Списки
Списки бывают двух основных видов:
<ul> — unordered list). Элементы помечаются точками (буллитами).<ol> — ordered list). Элементы помечаются цифрами.Внутри обоих типов списков каждый пункт оборачивается в тег <li> (list item).
Пример кода:
Интерактивность: Формы
Формы — это способ получения информации от пользователя. Регистрация, поиск, комментарии, оформление заказа — всё это формы.
Главный контейнер для формы — тег <form>. Внутри него располагаются элементы управления.
Поле ввода: <input>
Самый универсальный тег. Его поведение зависит от атрибута type:
* <input type="text">: Однострочное текстовое поле (имя, логин).
* <input type="password">: Поле для пароля (символы скрыты точками).
* <input type="email">: Поле для почты (браузер проверит наличие @).
* <input type="checkbox">: Галочка (можно выбрать несколько вариантов).
* <input type="radio">: Радиокнопка (выбор только одного варианта из группы).
* <input type="date">: Календарь для выбора даты.
Другие элементы формы
* <textarea>: Многострочное текстовое поле (например, для ввода комментария). Обратите внимание, это парный тег.
* <button>: Кнопка. Может отправлять форму или выполнять действие.
* <label>: Подпись к полю ввода. Связывает текст с конкретным инпутом, что улучшает доступность (можно кликнуть на текст, и фокус перейдет в поле).
Пример простой формы входа:
В этом примере:
* Атрибут placeholder показывает подсказку внутри поля, пока оно пустое.
* Атрибут name обязателен, если вы хотите отправить данные на сервер (это имя переменной, которую получит сервер).
* Атрибут for у label должен совпадать с id у input, чтобы связать их.
Заключение
Мы разобрали фундамент HTML. Теперь вы знаете, как создать структуру документа, использовать семантические теги для правильной архитектуры страницы и создавать формы для взаимодействия с пользователем.
Ваш код уже несет смысл, но пока он выглядит черно-белым и скучным. В следующей части курса мы подключим CSS, чтобы превратить эту структуру в стильный и современный интерфейс.