1. Основы HTML: структура, семантика и формы
Основы HTML: структура, семантика и формы
Зачем нужен HTML в качественной вёрстке
HTML — это язык разметки, который описывает смысл и структуру страницы. CSS отвечает за внешний вид, а HTML — за то, что именно находится на странице и как это логически организовано.
Качественная HTML-разметка:
Как мыслить структурой документа
Страницу удобно представлять как дерево: документ состоит из разделов, разделы — из блоков, блоки — из элементов контента.
!Схема показывает, что документ — это иерархия смысловых областей
Чтобы структура была понятной:
Семантика: что это и почему важна
Семантика — это выбор таких элементов разметки, которые передают смысл, а не только внешний вид.
Пример семантического подхода:
Базовые семантические области
Ниже — типичные смысловые области страницы и элементы, которые обычно для них используют.
| Задача | Что это означает | Типичный элемент |
|---|---|---|
| Шапка страницы или раздела | Вводная часть: логотип, название, быстрые действия | header |
| Навигация | Основные ссылки для перемещения по сайту/разделу | nav |
| Основной контент | Уникальное содержимое страницы (не меню и не подвал) | main |
| Самостоятельный материал | Независимая единица: пост, карточка новости, запись | article |
| Смысловой раздел | Группа контента по теме внутри страницы | section |
| Дополнительная колонка | Сопутствующая информация: виджеты, ссылки, реклама | aside |
| Подвал страницы или раздела | Контакты, копирайт, ссылки на документы | footer |
Важно: семантика не «для красоты». Она помогает браузерам, поисковым системам и ассистивным технологиям правильно интерпретировать страницу.
Когда не стоит использовать семантический элемент
Иногда разработчики пытаются «втиснуть» семантику в любой блок. Это ухудшает разметку.
section, если внутри нет заголовка разделаnav, если это набор второстепенных ссылок, не являющихся навигациейarticle, если блок не является самостоятельной единицейЕсли подходящего семантического элемента нет, используйте универсальный контейнер div и добавляйте смысл через структуру, заголовки и (при необходимости) ARIA-атрибуты.
Заголовки и логика уровней
Заголовки — основа читаемой структуры.
Правила хорошего тона:
h1 на страницу (в большинстве типовых страниц)h2 логично идти к h3, а не сразу к h4Смысл заголовков — не в размере шрифта. Размер задаёт CSS, а уровень заголовка задаёт иерархию.
Текстовый контент и группировка
Для качественной разметки важно различать типы контента.
ul, ol)blockquote)Ссылки должны быть понятными:
Источник по семантике и структуре HTML:
Формы: основа взаимодействия с пользователем
Форма — это набор полей, который отправляет данные. Качественные формы — это про удобство, доступность и корректную отправку данных.
Из чего состоит форма
Типичный набор:
form)label)input, textarea, select)button)Ключевая идея: у каждого поля должно быть имя name, потому что именно по name сервер (или обработчик на клиенте) понимает, какое значение к чему относится.
Связка label и поле
Правильная подпись поля повышает удобство:
Технически это делается связкой label через for и идентификатор поля id. Важно, чтобы они совпадали по значению.
Типы полей и зачем они нужны
Выбор корректного типа улучшает ввод и валидацию.
| Задача | Тип поля | Польза |
|---|---|---|
| Email | email | встроенная проверка формата и подходящая клавиатура на мобильных |
| Пароль | password | скрытие ввода |
| Телефон | tel | удобная клавиатура на мобильных (формат не гарантируется) |
| Число | number | числовой ввод и ограничения |
| Дата | date | встроенный выбор даты (зависит от браузера) |
| Флажок | checkbox | независимый выбор да/нет |
| Радио-кнопки | radio | выбор одного варианта из группы |
Группировка связанных полей
Если несколько полей относятся к одной группе (например, способ доставки), их важно объединять.
fieldset для группыlegend как заголовок группыТак форма становится понятнее и визуально, и для доступности.
Атрибуты, которые делают формы лучше
required — поле обязательно для заполненияautocomplete — помогает браузеру подставлять сохранённые данныеplaceholder — подсказка формата, но не замена labelmin, max, step — ограничения для чиселminlength, maxlength — ограничения длиныpattern — проверка по шаблону (используйте аккуратно, чтобы не ухудшить UX)Важно: встроенная валидация браузера — это помощь пользователю, но не защита. На сервере данные нужно проверять всегда.
Источник по формам:
Отправка формы: method и action
У формы есть два ключевых параметра:
action — куда отправлять данные (URL обработчика)method — как отправлять данныеОбычно используются:
get — параметры попадают в адресную строку; подходит для поиска и фильтровpost — данные отправляются в теле запроса; подходит для регистрации, логина, платежейЕсли данные чувствительные (пароль, персональная информация), используйте post и защищённое соединение HTTPS.
Пример структуры формы в псевдокоде
Ниже пример структуры без привязки к внешнему виду. Это не готовая разметка, а «чертёж» смысловых частей.
Частые ошибки новичков
labelname, из-за чего данные невозможно корректно обработатьplaceholder используется вместо подписи, из-за чего пользователь теряет контекст при вводеЧто дальше по курсу
В следующей теме логично перейти к CSS: как подключать стили, как работает каскад, специфичность и базовая типографика. Хорошая HTML-структура из этой статьи станет фундаментом для предсказуемых CSS-правил.