1. Основы верстки: структура HTML5 и стилизация с помощью CSS3
Основы верстки: структура HTML5 и стилизация с помощью CSS3
Добро пожаловать в курс «Полный курс по веб-разработке: Fullstack старт»! Мы начинаем наше путешествие с фундамента, на котором держится весь интернет. Неважно, создаете ли вы простой блог или сложную социальную сеть, всё начинается с двух технологий: HTML и CSS.
В этой статье мы разберем, как создается скелет веб-страницы, как сделать её красивой и удобной для пользователя, и почему семантика — это не просто модное слово, а необходимость.
Что такое веб-страница?
Представьте, что вы строите дом. Прежде чем клеить обои или расставлять мебель, вам нужен фундамент, стены, крыша и перекрытия. В веб-разработке роль этого каркаса выполняет HTML. А вот за цвет фасада, стиль окон и уют в комнатах отвечает CSS.
!Сравнение HTML как каркаса и CSS как оформления на примере строительства дома
HTML (HyperText Markup Language)
HTML — это язык гипертекстовой разметки. Важно понимать: это не язык программирования. Здесь нет переменных, циклов или логических операций в привычном понимании. HTML сообщает браузеру, чем является тот или иной элемент на странице: заголовком, абзацем, картинкой или ссылкой.
CSS (Cascading Style Sheets)
CSS — это каскадные таблицы стилей. Это язык, который описывает внешний вид документа, написанного на HTML. CSS отвечает за шрифты, цвета, отступы, расположение элементов и даже анимацию.
Анатомия HTML-документа
Любая веб-страница состоит из набора тегов. Тег — это ключевое слово, заключенное в угловые скобки. Большинство тегов являются парными: у них есть открывающая часть и закрывающая.
Пример базовой структуры:
Давайте разберем каждую строчку:
<!DOCTYPE html> — Это не тег, а инструкция для браузера. Она сообщает, что мы используем современный стандарт HTML5. Без этой строчки браузер может перейти в «режим совместимости» и отображать страницу некорректно.<html> — Корневой элемент страницы. Весь контент должен находиться внутри него. Атрибут lang="ru" помогает поисковым системам и скринридерам (программам чтения с экрана) понять язык контента.<head> — «Голова» документа. Здесь хранится служебная информация, которая не видна пользователю напрямую: кодировка, заголовок вкладки браузера, подключение стилей и скриптов.<body> — «Тело» документа. Всё, что вы видите в окне браузера (текст, картинки, кнопки), пишется именно здесь.Вложенность и атрибуты
HTML-элементы могут вкладываться друг в друга, как матрешки. Это создает древовидную структуру документа (DOM — Document Object Model).
У тегов могут быть атрибуты, которые расширяют их функциональность. Атрибуты пишутся внутри открывающего тега.
Пример ссылки с атрибутами:
* <a> — тег ссылки (anchor).
* href — атрибут, указывающий адрес назначения.
* target="_blank" — атрибут, заставляющий ссылку открываться в новой вкладке.
* Перейти в Google — контент тега, который видит пользователь.
Семантическая верстка в HTML5
В старых версиях HTML разработчики часто использовали тег <div> для всего подряд. <div> — это просто контейнер без смысловой нагрузки. Однако HTML5 принес нам семантические теги. Они говорят браузеру и разработчику о смысле содержимого.
Почему это важно?
Основные семантические теги:
* <header> — «шапка» сайта или вводная часть раздела.
* <nav> — блок навигации (меню).
* <main> — основное, уникальное содержимое страницы (должен быть только один на странице).
* <section> — тематический раздел контента.
* <article> — независимый, самодостаточный материал (например, пост в блоге или новость).
* <aside> — боковая панель или контент, косвенно связанный с основным (реклама, рубрикатор).
* <footer> — «подвал» сайта (контакты, копирайт).
!Структура веб-страницы с использованием семантических тегов HTML5
Основы CSS3: как добавить стиль
HTML без CSS выглядит скучно: черный текст на белом фоне, выровненный по левому краю. CSS позволяет нам изменить это.
Синтаксис CSS
Правило CSS состоит из селектора и блока объявлений.
p — Селектор. Он указывает, какие* элементы мы хотим стилизовать (в данном случае все абзацы).
* color — Свойство. Что именно мы меняем.
* red — Значение. На что мы меняем.
Способы подключения CSS
Существует три способа добавить стили на страницу, но профессиональным считается только один.
style. <p style="color: red;">Текст</p>
Вердикт:* Избегайте этого. Это засоряет код и усложняет поддержку.
<style> внутри <head>..css и подключаются через тег <link>.Подключение внешнего файла:
Основные селекторы
Чтобы «попасть» стилями в нужный элемент, используются селекторы:
* Селектор тега: h1 { ... } — применяет стили ко всем тегам <h1>.
* Селектор класса: .button { ... } — применяет стили ко всем элементам с атрибутом class="button". Классы могут повторяться много раз на странице.
* Селектор ID: #logo { ... } — применяет стили к элементу с id="logo". ID должен быть уникальным на странице.
> Совет: Старайтесь использовать классы для стилизации. ID имеют слишком высокий «вес» специфичности, что может создать проблемы при переопределении стилей в будущем.
Блочная модель (Box Model)
Это, пожалуй, самая важная концепция в CSS, которую нужно понять новичку. В глазах браузера каждый элемент — это прямоугольный ящик.
Даже если вы видите круглую кнопку или текст, вокруг них существует невидимая прямоугольная область. Этот «ящик» состоит из четырех слоев:
!Иллюстрация блочной модели CSS: Content, Padding, Border, Margin
Пример кода для понимания:
В данном примере полная ширина элемента на экране будет не 200px, а:
Где — ширина контента, — левый и правый padding, — левый и правый border. Margin не влияет на размер самого элемента, но влияет на место, которое он занимает в потоке.
Чтобы избежать сложной математики при расчете ширины, современные разработчики используют свойство:
Это заставляет браузер включать padding и border в общую ширину (width), что делает верстку гораздо более предсказуемой.
Практический пример
Давайте соберем всё вместе. Создадим простую карточку товара.
HTML:
CSS:
В этом примере мы использовали семантический тег <article>, классы для стилизации, настроили отступы и цвета. Псевдокласс :hover позволяет изменить стиль кнопки, когда пользователь наводит на неё курсор, добавляя интерактивности.
Заключение
Мы рассмотрели базу: структуру HTML5, семантику, синтаксис CSS и блочную модель. Это алфавит веб-разработки. Невозможно написать «Войну и мир» (или Facebook), не зная букв.
В следующих статьях мы углубимся в более сложные темы, такие как позиционирование элементов, Flexbox и Grid, которые позволят создавать сложные макеты. Но помните: любой, даже самый сложный сайт, в своей основе состоит из простых «кирпичиков», которые вы изучили сегодня.
Для более глубокого погружения в документацию рекомендую использовать MDN Web Docs — это самый авторитетный справочник для веб-разработчиков.