В прошлом уроке вы уже написали первые теги и увидели страницу в браузере. Но чтобы верстать уверенно, а не наугад, важно понять устройство HTML изнутри: как теги вкладываются друг в друга, что такое атрибуты и почему документ имеет строгую структуру. Это тот фундамент, на котором держится вообще всё дальнейшее — стили, макеты, скрипты.
После этого урока вы будете «читать» любой HTML-код как схему: видеть, какой элемент кому родитель, где вложенность нарушена и куда добавить новый блок.
Что уже умеем / что добавим
Вы умеете создавать каркас документа и выводить заголовок с абзацем. Теперь разберёмся, по каким правилам элементы вкладываются друг в друга и как атрибуты меняют их поведение. В сквозном проекте мы наведём порядок в структуре нашего лендинга и добавим первый вложенный блок-контейнер.
Что вы узнаете в рамках статьи
- Как устроен элемент и чем он отличается от тега.
- Что такое атрибуты и как их правильно записывать.
- Что такое вложенность и «дерево» документа.
- Чем блочные элементы отличаются от строчных.
- Как аккуратно оформлять отступы в коде для читаемости.
Ключевые термины
- Тег — команда разметки в угловых скобках:
<p>,</p>. - Элемент — открывающий тег, содержимое и закрывающий тег вместе.
- Атрибут — настройка внутри открывающего тега в формате
имя="значение". - Вложенность — размещение одного элемента внутри другого.
- Родитель и потомок — внешний элемент и вложенный в него.
- Блочный элемент — занимает всю ширину и начинается с новой строки (
div,p,h1). - Строчный элемент — занимает столько места, сколько нужно содержимому, и стоит в потоке текста (
a,span).
Элемент и его части
Разметка HTML состоит из элементов. Большинство элементов — парные: у них есть открывающий и закрывающий теги, а между ними находится содержимое.
<p>Это абзац текста.</p>
Здесь <p> открывает элемент, </p> закрывает его (перед именем стоит слэш), а между ними — содержимое. Браузер, встретив такую пару, понимает: это абзац, и отображает его с вертикальными отступами.
Есть и одиночные элементы — они не содержат текста и не требуют закрывающего тега. Пример — перенос строки <br> или изображение <img>. С изображениями мы подробно поработаем в уроке 1.4.
Атрибуты
Атрибут — это дополнительная настройка элемента. Он записывается внутри открывающего тега в виде пары имя="значение":
<html lang="ru">
<a href="https://example.com">Ссылка</a>
В первом примере атрибут lang со значением ru сообщает, что страница на русском. Во втором атрибут href задаёт адрес, куда ведёт ссылка. У одного элемента может быть несколько атрибутов — их разделяют пробелом. Значение всегда берут в кавычки.
Частая ошибка новичка — забыть кавычки или перепутать имя атрибута. Если ссылка не работает, первым делом проверьте href.
Вложенность и дерево документа
Элементы можно вкладывать друг в друга — и именно так строится любая страница. Внешний элемент называют родителем, вложенный — потомком.
<body>
<div>
<h1>Заголовок</h1>
<p>Абзац внутри блока.</p>
</div>
</body>
Здесь body — родитель для div, а div — родитель для h1 и p. Такую структуру удобно представлять как дерево: у него есть корень (html) и ветви, уходящие вглубь. Браузер строит это дерево, читая ваш код сверху вниз.
Главное правило вложенности: элементы не должны «перехлёстываться». Открыли <div>, потом <p> — сначала закройте </p>, и только затем </div>. Запись <div><p>текст</div></p> — ошибка.
Блочные и строчные элементы
Элементы делятся на две большие группы. Блочные занимают всю доступную ширину и всегда начинаются с новой строки: div, h1–h6, p. Из них строят крупные части страницы. Строчные занимают ровно столько места, сколько нужно их содержимому, и располагаются внутри строки текста: ссылка a, выделение span.
<p>Обычный текст и <a href="#">ссылка</a> внутри него.</p>
Ссылка не переносится на новую строку, а остаётся частью абзаца — потому что a строчный. Понимание этого различия избавит вас от многих загадок при вёрстке: например, почему два div встают друг под другом, а две ссылки — рядом.
Применяем в проекте
Наведём порядок в лендинге. Обернём титульный экран в блок-контейнер div — так его будет удобно стилизовать позже как единую секцию. Заодно добавим осмысленные отступы в коде.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Курс по вёрстке</title>
</head>
<body>
<div>
<h1>Научитесь верстать сайты с нуля</h1>
<p>Практический курс по HTML и CSS для начинающих. От первой страницы до готового лендинга.</p>
</div>
</body>
</html>
Внешне на странице почти ничего не изменилось, но структура стала чище: заголовок и описание теперь логически объединены в один блок. К нему мы вернёмся, когда будем делить страницу на секции.
Частые ошибки
- Перехлёст вложенности.
Закрывайте элементы в обратном порядке открытия: последний открытый закрывается первым. - Забытые кавычки в атрибуте.
Значение атрибута всегда в кавычках:href="...", а неhref=.... - Пропущенный закрывающий тег.
У парных элементов он обязателен, иначе структура «поедет». - Смешение ролей.
Не пытайтесь ставить блочныйdivвнутрь строки текста, ожидая, что он останется в строке — он всё равно перенесётся.
Итоги
Отличная работа — вы заглянули под капот HTML и разобрались в главном: как из тегов, атрибутов и вложенности складывается стройное дерево документа. Теперь вы понимаете, почему одни элементы встают друг под другом, а другие — в строку, и умеете читать чужой код без страха запутаться. Это знание будет с вами на каждом следующем уроке.
Вы молодец, что дошли до этого момента! Дальше — самое живое: в уроке 1.3 мы наполним страницу содержанием и познакомимся с текстовыми тегами и списками.