1. Основы HTML: семантическая структура, формы и разбор примеров «до и после»
Основы HTML: семантическая структура, формы и разбор примеров «до и после»
Добро пожаловать в курс «Код на пальцах: от понимания к практике». Если вы когда-либо смотрели на исходный код сайта и видели там бесконечные наборы непонятных символов, то эта статья для вас. Мы начнем с самого фундамента — HTML.
Представьте, что создание сайта — это строительство дома. HTML (HyperText Markup Language) — это не обои и не мебель (это задача CSS), и не электрика с водопроводом (это JavaScript). HTML — это железобетонный каркас, стены и перекрытия. Если каркас кривой, никакой красивый фасад это не исправит.
В этой статье мы научимся писать чистый, понятный и «семантический» код, который любят и поисковики, и браузеры.
Анатомия HTML-документа
Прежде чем переходить к сложным вещам, давайте разберем базовый скелет любой страницы. Это тот минимум, без которого браузер не поймет, что перед ним веб-сайт.
Разбор по строкам:
<!DOCTYPE html> — Это паспорт документа. Он говорит браузеру: «Я использую современный стандарт HTML5, обрабатывай меня соответственно».<html lang="ru"> — Корневой элемент. Атрибут lang="ru" подсказывает браузеру и поисковикам, что основной контент на русском языке.<head> — Это «мозг» страницы. Всё, что находится здесь, пользователь не видит на экране (кроме заголовка вкладки). Здесь живут настройки, кодировки и подключения стилей.<meta charset="UTF-8"> — Критически важная строка. Она включает поддержку кириллицы и спецсимволов. Без неё ваш текст может превратиться в набор кракозябр.<body> — Это «тело» страницы. Всё, что вы видите в окне браузера (текст, картинки, кнопки), пишется строго внутри этих тегов.Семантика: почему <div> — это не панацея
Новички часто совершают одну и ту же ошибку: они используют тег <div> для всего подряд. <div> (division) — это просто пустая коробка без смысла. Когда весь сайт состоит из дивов, это называется «div soup» (суп из дивов).
Семантическая верстка — это использование тегов, которые объясняют смысл содержимого. Это важно для: * SEO: Поисковые роботы лучше понимают структуру сайта. * Доступности: Скринридеры (программы для незрячих) могут корректно читать сайт, сообщая пользователю: «Это навигация», «Это статья», «Это подвал».
Основные семантические теги:
* <header> — «шапка» сайта или вводная часть статьи.
* <nav> — блок с навигационными ссылками.
* <main> — основное, уникальное содержимое страницы (должен быть только один на странице).
* <section> — смысловой раздел контента (например, «О нас», «Контакты»).
* <article> — самостоятельный материал (новость, пост в блоге), который имеет смысл даже в отрыве от сайта.
* <aside> — боковая панель или дополнительная информация (реклама, ссылки на похожие статьи).
* <footer> — «подвал» сайта (копирайты, контакты).
Пример №1: Структура страницы
Давайте посмотрим, как превратить «суп из дивов» в качественную разметку.
ДО (Плохая практика)
Здесь непонятно, где что находится. Для робота это просто набор одинаковых коробок.
ПОСЛЕ (Хорошая практика)
Теперь каждый тег говорит сам за себя.
Разбор изменений:
<div class="top-bar"> на <header>. Теперь ясно, что это вводная часть.<nav>. Браузер знает: здесь навигация.<main>, а сам пост — в <article>.<h1> (самый важный заголовок), а текст — параграфом <p>.<footer>, а копирайт обернут в <small> (тег для мелкого текста или юридических примечаний).Формы: диалог с пользователем
Формы — это способ получения информации от пользователя. Регистрация, поиск, комментарии — всё это формы.
Главный тег — <form>. Внутри него живут элементы управления.
Ключевые элементы форм:
* <input> — универсальное поле ввода. Его вид зависит от атрибута type:
* type="text" — обычный текст.
* type="email" — проверка на формат email.
* type="password" — скрывает символы точками.
* type="checkbox" — галочка.
* type="radio" — выбор одного варианта из нескольких.
* <label> — подпись к полю. Критически важен! Он связывает текст с полем ввода. Если нажать на текст лейбла, курсор активируется в поле.
* <button> — кнопка отправки.
Пример №2: Форма входа
ДО (Неудобно и недоступно)
Пользователь не понимает, что куда вводить, если плейсхолдер исчезнет. Скринридер не прочитает назначение полей.
ПОСЛЕ (Профессионально)
Построчный разбор:
<form action="..." method="post">: Обернули всё в форму. action говорит, куда слать данные, method — как (скрытно).<label for="username">: Атрибут for совпадает с id="username" у инпута. Это создает жесткую связь. Клик по слову «Имя пользователя» активирует поле ввода.type="password": Теперь при вводе пароля видны только точки.required: Браузер не даст отправить форму, если поле пустое.minlength="8": Валидация прямо в HTML — пароль не может быть короче 8 символов.<button type="submit">: Это именно кнопка, которая умеет отправлять форму (по нажатию Enter или клику).Практическое задание: Блок с тремя колонками
В рамках этого модуля ваша задача — создать HTML-структуру для блока новостей, который в будущем (в уроке по CSS) станет тремя колонками. Пока что они будут идти друг под другом, и это нормально.
ТЗ (Техническое задание):
<section>.<h2> с текстом «Последние новости».<article> внутри секции.<img> (используйте заглушку или любой URL).
* Заголовок новости <h3>.
* Короткий текст <p>.
* Ссылка «Читать далее» <a>.Попробуйте написать этот код самостоятельно в редакторе (например, VS Code или онлайн в CodePen). В следующем уроке мы научимся раскрашивать эти блоки и выстраивать их в ряд с помощью CSS.
Помните: HTML — это про смысл. Если вы смотрите на код и понимаете, что это за данные, значит, вы всё делаете правильно.