База по вёрстке: основы HTML

Для тех, кто хочет начать делать сайты

База по вёрстке: основы HTML

Если вы когда-нибудь хотели сделать свой сайт, сверстать красивую страницу или хотя бы понять, что там творится в «Посмотреть код страницы», — начните с изучения HTML. Это не язык программирования, а язык разметки, который говорит браузеру: «Вот заголовок, вот картинка, вот форма подписки — отрисуй это всё». Без HTML не будет возможен ни один сайт — простой или самый навороченный.

В этой статье разберёмся, что такое HTML, зачем он нужен, что можно с ним делать и как выглядит базовая структура страницы.

Что такое HTML

HTML (HyperText Markup Language) — это язык разметки, который используется для создания и структурирования веб-страниц. Он не программирует, а описывает, как должна выглядеть страница в браузере: где заголовок, где картинка, где текст, куда ведёт ссылка и так далее.

Если упростить, HTML — это каркас любого сайта. Представьте магазин: HTML — это стены, полки, кассовая зона и навигация по залу. CSS — это оформление: цвета стен, шрифты на ценниках, освещение. А JavaScript — это действия: двери открываются автоматически, кнопка «позвать консультанта» работает, форма оплаты реагирует на ввод. Но без HTML ни одного товара не повесишь, всё остальное лишь надстройка.

Код на HTML состоит из тегов — специальных конструкций в угловых скобках, которые подсказывают браузеру, что делать с содержимым:

<p>Это абзац текста</p>
<img src="cute_cat.jpg" alt="Изображение котика">

Эти теги не видны на самой странице, но именно они задают структуру, которую потом можно стилизовать и анимировать.

Для работы с HTML достаточно любого текстового редактора, который умеет сохранять текст в простом html-формате, но удобнее пользоваться специальным редактором: он подсвечивает код разными цветами и работать становится проще, особенно новичку. Мы рекомендуем Visual Studio Code, и у нас есть статья о том, как его установить и настроить.

Это язык программирования или нет?

Нет. HTML — это не язык программирования, а язык разметки. Он не умеет выполнять команды, запускать условия, считать или обрабатывать данные. Его задача — описать структуру страницы: где заголовок, где картинка, где форма и что за чем идёт.

Чтобы сайт выглядел красиво и реагировал на действия пользователя, HTML используется вместе с другими технологиями:

  • CSS — оформляет внешний вид: цвета, отступы, шрифты.
  • JavaScript — добавляет интерактив: анимации, кнопки, всплывающие окна и логику поведения страницы.

HTML не управляет поведением, но без него ничего не появится на странице — ни текст, ни картинка, ни кнопка.

Зачем нужен HTML

HTML — это основа любого сайта. Без него браузер просто не поймёт, что нужно показывать. Всё, что вы видите в интернете — текст, картинки, таблицы, формы, кнопки, видео, — всё размечено на HTML.

Он нужен, чтобы:

  • создавать структуру страницы — разбить её на логичные блоки: хедер, навигацию, контент, футер;
  • обозначить, что есть что, — заголовок <h1>, абзац <p>, список <ul>;
  • встроить мультимедиа — вставить изображение, музыку, видео или карту;
  • добавить формы и поля — для ввода текста, мейла, кнопок «Отправить».

Любой фреймворк, CMS, визуальный редактор или генератор сайтов (да хоть Tilda или Webflow) в итоге просто собирает HTML. А значит, понимание HTML — это база.

Что делают при помощи HTML

HTML используют, чтобы верстать страницы, которые открываются в браузере. Это могут быть:

  • сайты и лендинги — от простых визиток до огромных порталов;
  • письма для рассылок — да, они тоже пишутся на HTML (но с оговорками);
  • интерфейсы в админках и CMS — форма входа, таблица с заказами, карточка товара;
  • документация, инструкции и статьи — если они отображаются прямо в браузере;
  • шаблоны для генерации PDF или отчётов — HTML используется как основа.

А ещё HTML нужен, чтобы делать прототипы, встраивать виджеты, подключать аналитику и даже делать интерфейсы для интернет вещей (IoT). В общем, всё, что хоть как-то связано с вебом, — всё начинается с HTML.

Основы HTML

А теперь на примерах посмотрим, как HTML выглядит вживую. Разберёмся, как устроена самая простая веб-страница, какие у неё есть обязательные части и что делает каждая из них. 

Самая простая страница

Для того чтобы сделать самую простую веб-страницу, достаточно создать в редакторе новый документ, выбрать для него язык HTML и написать несколько строк кода.

Чтобы не запутаться в коде, можно добавлять комментарии — браузер их игнорирует, а вам они помогают разобраться, что где находится. Выглядят они так:

<!-- комментарий -->

Писать в комментариях можно что угодно: они не отображаются на странице, но здорово выручают при отладке и в командной работе.

Теперь посмотрим, из чего состоит самая базовая HTML-страница. В неё входят несколько обязательных блоков: <!DOCTYPE html>, <html>, <head> и <body> — всё что нужно, чтобы документ считался валидным:

<!DOCTYPE html> 
<!-- это «голова» страницы --> 
<head> 
</head> 
<!-- это «тело» страницы --> 
<body> 
</body> 
</html>

Если сохранить этот документ и открыть его в браузере, отобразится пустая страница, потому что мы её пока ничем не наполнили. Но, по сути, это уже полноценный HTML-документ:

Чтобы убедиться, что структура действительно есть, откройте инструменты разработчика в браузере (например, в Chrome правая кнопка мыши → «Посмотреть код» или клавиша F12). Вкладка «Элементы» покажет, что ваш HTML-документ настоящий: там видно, как браузер «понимает» ваш код. Даже если страница пустая, структура уже задана и всё работает.

HTML-теги и атрибуты

Когда вы работаете в текстовом редакторе — Word или Google Docs, то просто выделяете текст, нажимаете кнопку «курсив» — и стиль текста меняется. Но в HTML нужно сказать браузеру напрямую, что вы хотите сделать. Именно для этого используются теги.

Тег — это инструкция в угловых скобках: <p> — сделай абзац, <h1> — оформи заголовок, <img> — вставь картинку. Есть десятки таких тегов, например:

  • <p>, <br> — для абзаца и переноса на другую строку;
  • <h1>, <p>, <div>, <span> и другие — для организации текста и мультимедийных элементов;
  • <b>, <i>, <u>, <strong>, <em> и так далее — для форматирования текста;
  • <ul>, <ol> и <li> — для создания маркированных и нумерованных списков;
  • <a> — для создания ссылки на определённый раздел страницы или другой веб-документ;
  • <img>, <video>, <audio> и так далее — для вставки изображений, видео, аудио и других мультимедийных элементов;
  • <button>, <form>, <input>, <textarea> — для создания кнопок и форм для ввода данных и так далее.

Посмотреть все HTML-теги можно на сайте Mozilla Development Network (на русском языке).

Большинство тегов парные: открывающий и закрывающий. Например:

<p>Текст абзаца</p>

Но есть и одиночные теги, которые не требуют закрытия, например <br> для переноса строки или <img src="image.jpg"> для вставки изображения.

У тегов могут быть атрибуты, то есть дополнительные настройки. Они пишутся внутри открывающего тега и уточняют, как именно должен работать элемент. Например, у тега <img> можно задать такие атрибуты <img src="cat.jpg" alt="Котик" width="300">:

  • 'src' (источник изображения);
  • 'alt' (альтернативный текст);
  • 'width' и 'height' (ширина и высота).

Атрибуты помогают определить свойства элементов — идентификаторы, классы, стили, типы данных, ссылки, размеры и многое другое. Атрибуты размещаются в открывающем теге, и их значения всегда заключены в кавычки.

Попробуйте поэкспериментировать — добавьте в вашу простую страницу заголовок, список, картинку или кнопку. Например, возьмите за основу такой код:

<!DOCTYPE html>
<html>
<!-- это «голова» страницы -->
<head>
    <!-- метаданные с указанием кодировки -->
    <meta charset="UTF-8">
    <!-- метаданные для адаптивного дизайна -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Пример HTML-документа</title>
</head>

<!-- это «тело» страницы -->
<body>
    <!-- заголовок страницы -->
    <h1>Заголовок первого уровня</h1>

    <ul>
        <li><a href="#">Домой</a></li>
        <li><a href="#">Обо мне</a></li>
        <li><a href="#">Контакты</a></li>
    </ul>

    <h2>Заголовок второго уровня</h2>
    <h3>Заголовок третьего уровня</h3>
    <p>Пример текста в абзаце</p>

    <h2>Блок справа</h2>
    <p>Текст блока справа.</p>

    <!-- добавляем картинку и указываем адрес, по которому браузер может её получить -->
    <img src="https://thecode.media/wp-content/themes/thecode_refresh/assets/svg/logo.svg" alt="Пример изображения">
    <!-- добавляем перенос на новую строку -->
    <br >
    <!-- добавляем ссылку на журнал «Код» и указываем, что эта страница должна открыться в новой вкладке -->
    <a href="https://thecode.media" target=”blank”>Ссылка на журнал «Код»</a>
    <h2>Пример формы (заголовок второго уровня)</h2>
    <!-- добавляем форму -->
    <form>
        <div>
            <!-- указываем имя поля для ввода имени -->
            <label for="name">Имя</label>
            <!-- добавляем поле для ввода имени и указываем тип, идентификатор и имя этого поля, а также то, что оно обязательно для заполнения -->
            <input type="text" id="name" name="name" required>
        </div>
        <div>
            <!-- указываем имя поля для ввода адреса электронной почты -->
            <label for="email">Email:</label>
            <!-- добавляем поле для ввода адреса электронной почты и указываем тип, идентификатор и имя этого поля, а также то, что оно обязательно для заполнения -->
            <input type="email" id="email" name="email" required>
        </div>
        <div>
            <!-- добавляем кнопку -->
            <button type="submit">Отправить</button>
        </div>
    </form>

    <p>© 2024 Моя учебная веб-страница</p>
</body>
</html>

После сохранения HTML-документа можно увидеть такую страницу в браузере:

Страница пока не очень симпатичная, потому что мы не добавили никаких стилей. А «Блок справа» пока находится слева, потому что мы не настроили его расположение на странице. Чтобы это поправить, нам нужны CSS-стили, которыми мы займёмся в следующий раз. А пока попробуйте редактировать этот код и смотреть, как меняется страница (для этого после внесения изменений нужно сохранить HTML-документ и перезагрузить браузер, в котором открыта страница).

👉 Если хотите убедиться, что всё сделано правильно, то проверьте свой код через валидатор HTML. Он покажет, где не закрылись теги, где забыли пробел, а где нет alt у картинки. Один из самых известных — validator.w3.org.

А ещё посмотрите наши не очень сложные проекты, мы там всё объясняем пошагово. Это хороший способ начать разбираться в HTML лучше:

Семантический HTML

HTML-теги бывают не только техническими, но и семантическими — то есть несущими смысл. Они не просто отображают что-то на экране, а дают понять, что именно здесь находится: заголовок? меню? основной контент? подвал страницы?

Это нужно не только для порядка, но и для браузеров, поисковиков и даже голосовых ассистентов. С их помощью можно чётко обозначить, что и где на странице, чтобы это было понятно не только глазу, но и машине. Если вам не очень понятно, при чём тут поисковые системы, может помочь наша статья «Что такое SEO».

Сравните:

<div>Навигация</div>

и

<nav>Навигация</nav>

Во втором случае всё ясно и человеку, и браузеру: это блок навигации.

Вот примеры основных семантических тегов:

  • <header> — заголовок страницы или раздела.
  • <nav> — навигационное меню.
  • <main> — основное содержание документа.
  • <article> — независимый, автономный контент, который может быть отдельно распространён или использован.
  • <section> — раздел, группирующий связанный контент.
  • <aside> — контент, косвенно связанный с основным содержанием (например, боковая панель).
  • <footer> — нижний колонтитул страницы или раздела.

Попробуем на практике и посмотрим, что поменяется. Вот пример HTML-документа с семантической структурой:

<!DOCTYPE html>
<html>
<!-- это «голова» страницы -->
<head>
    <!-- метаданные с указанием кодировки -->
    <meta charset="UTF-8">
    <!-- метаданные для адаптивного дизайна -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Пример HTML-документа</title>
</head>

<!-- это «тело» страницы -->
<body>
    <!-- заголовок страницы -->
    <header>
    <h1>Заголовок первого уровня</h1>
    </header>

    <!-- навигационное меню со ссылками -->
    <nav>
        <ul>
            <li><a href="#">Домой</a></li>
            <li><a href="#">Обо мне</a></li>
            <li><a href="#">Контакты</a></li>
        </ul>
    </nav>

    <!-- основная часть контента страницы -->
    <main>
        <!-- основной контент -->
        <article>
            <h2>Заголовок второго уровня</h2>
            <!-- раздел внутри основного контента -->
            <section>
                <h3>Заголовок третьего уровня</h3>
                <p>Пример текста в абзаце</p>
            </section>
            </article>

            <!-- боковая панель -->
            <aside>
                <h2>Блок справа</h2>
                <p>Текст блока справа.</p>
            </aside>

    <!-- добавляем картинку и указываем адрес, по которому браузер может её получить -->
    <img src="https://thecode.media/wp-content/themes/thecode_refresh/assets/svg/logo.svg" alt="Пример изображения">
    <!-- добавляем перенос на новую строку -->
    <br>
    <!-- добавляем ссылку на журнал «Код» и указываем, что эта страница должна открыться в новой вкладке -->
    <a href="https://thecode.media" target=”blank”>Ссылка на журнал «Код»</a>
    <h2>Пример формы (заголовок второго уровня)</h2>
    <!-- добавляем форму -->
    <form>
        <div>
            <!-- указываем имя поля для ввода имени -->
            <label for="name">Имя</label>
            <!-- добавляем поле для ввода имени и указываем тип, идентификатор и имя этого поля, а также то, что оно обязательно для заполнения -->
            <input type="text" id="name" name="name" required>
        </div>
        <div>
            <!-- указываем имя поля для ввода адреса электронной почты -->
            <label for="email">Email:</label>
            <!-- добавляем поле для ввода адреса электронной почты и указываем тип, идентификатор и имя этого поля, а также то, что оно обязательно для заполнения -->
            <input type="email" id="email" name="email" required>
        </div>
        <div>
            <!-- добавляем кнопку -->
            <button type="submit">Отправить</button>
        </div>
    </form>
</main>    

    <footer> 
        <p>© 2024 Моя учебная веб-страница</p>
    </footer>

</body>
</html>

Посмотрим, что получилось. Сохраним изменения и обновим страницу в браузере:

Сохранив и открыв этот файл в браузере, вы увидите, что внешне всё выглядит как обычно — семантика не влияет на общий вид страницы. Но внутри документа — порядок и смысл. Это особенно важно для SEO, доступности (a11y) и поддержки кода в будущем.

Таблицы в HTML

Таблицы нужны тогда, когда данные удобно представить в виде строк и столбцов: расписание, прайс-лист, сравнение характеристик — всё это просится в таблицу. В Word таблица создаётся в пару кликов, а в HTML — руками. Но это несложно, если понять структуру.

Для построения таблицы нужны теги:

  • <table> — сама таблица; 
  • <tr> — строка (table row);
  • <td> — ячейка данных (table data);
  • <th> — ячейка-заголовок (table header);
  • <thead>, <tbody>, <tfoot> — логические группы (необязательные, но полезные).

Допустим, у нас есть такая таблица:

НазваниеОписаниеЦена
Товар 1Хороший100 руб.

Чтобы добавить ее на веб-страницу, достаточно добавить в код такое (код может быть и сложнее, но пока ограничимся таким):

<!-- добавляем таблицу -->
<table border="1">
    <!-- первая строка -->
    <tr>
        <!-- три ячейки -->
        <td><b>Название</b></td>
        <td><b>Описание</b></td>
        <td><b>Цена</b></td>
       </tr>

    <!-- вторая строка -->  
    <tr>
        <!-- три ячейки -->
        <td>Товар 1</td>
        <td>Хороший</td>
        <td>100 руб.</td>
    </tr>
 </table>

Попробуйте добавить эти строки в код вашей учебной страницы перед закрывающим тегом </main> (не забудьте после этого сохранить HTML-документ и обновить страницу в браузере). Сохраните файл, откройте в браузере — и таблица на месте:

Кстати, раньше таблицы использовали не только для отображения данных, но и для верстки всего сайта (это было не так-то просто!). Сейчас для позиционирования используют CSS, а таблицы только по назначению: для отображения табличной информации.

Если вдруг захотите прокачать навыки работы с таблицами, посмотрите:

Зачем знать HTML

HTML — это тот язык, который всё ещё нужен даже в эпоху конструкторов, фреймворков и визуальных редакторов. И вот почему:

  • Фреймворки — не замена, а надстройка. React, Vue, Angular — все они используют синтаксис, который напоминает HTML. Вы описываете, как должен выглядеть компонент, и внутри него пишете что-то вроде <button>Нажми меня</button>. Это не настоящий HTML, но знание разметки помогает быстро понять, что происходит.
  • Если что-то сломалось, то чинить будете вы. В Tilda или шаблонах для «1С-Битрикс» можно вставить блок с HTML-кодом. А если письмо в рассылке поехало или виджет отображается криво, то поможет только ручная правка HTML.
  • Это универсальный «английский» для веба. Даже если вы не будете писать код, понимание HTML пригодится, когда будете работать с CMS, загружать контент на сайт, править шаблоны, встраивать формы или ставить метки аналитики.
  • Это почти вечное знание. HTML существует с 90-х и пережил десятки модных технологий. Он меняется очень медленно, и то, что вы выучите сегодня, останется актуальным ещё много лет.

HTML — это умение читать и писать в мире веба. Даже если вы не станете веб-разработчиком, вам будет проще объяснять задачи, понимать, как устроен сайт, и просто не бояться кода.

Вам слово

Приходите к нам в соцсети поделиться своим мнением об HTML и почитать, что пишут другие. А ещё там выходит дополнительный контент, которого нет на сайте — шпаргалки, опросы и разная дурка. В общем, вот тележка, вот ВК — велком!

Обложка:

Алексей Сухов

Корректор:

Александр Зубов

Вёрстка:

Егор Степанов

Соцсети:

Юлия Зубарева

Вам может быть интересно
easy
[anycomment]
Exit mobile version